2010-08-02 59 views
2

在我的C#asp.net 3.5 web應用程序中,我有一個文本框和一個複選框以及頁面上有一個提交按鈕的div標籤控件。所以在這個提交按鈕中,單擊我想讓div標籤內的控件可見。我正在調用一個JQuery函數來執行此操作。越來越執行的所有語句,但該控件不可見.. 以下是代碼在我的jQuery函數訪問jquery的asp.net web服務器控件

$("input[name$='QuestionAndAnswerEditorDiv']").show(); 
$("input[name$='answerLabel1']").show() 
$("input[name$='wmd-AnswerTextBox']").show() 

我div標籤及其在用戶控制網頁控件是像下面

<div id="QuestionAndAnswerEditorDiv" runat="server"> 
<div id="wmd-button-bar" class="wmd-panel wmd-button-row"></div> 
<textarea name="QuestionandAnswerTextArea" runat="server" id="AnswerTextBox" onkeyup="prettyPrint();" class="wmd-input editor" cols="92" rows="15"/><div class="wmd-preview text-preview preview" style="-ms-word-wrap: break-word;"></div> 

當我發現這些控件使人們看到=以另一個頁面錯誤,使他們不會在頁面的源代碼來。所以讓我知道做這些控件現在

+2

你是如何躲在首先,這些元素和他們一起玩?如果沒有首先在客戶端「隱藏」,他們就不能'顯示'。如果你隱藏在代碼隱藏中,他們甚至不會顯示在DOM中 – naspinski 2010-08-02 11:51:22

+0

您是否也可以包含您的HTML標記? – 2010-08-02 11:58:15

+0

所以我建議在我的答案使用適當的選擇器,這樣才能爲你工作 – 2010-08-02 11:59:36

回答

1

asp.net < 4中的所有Web服務器控件都不會使用其給定名稱呈現。 使用呈現的名稱使用Control.ClientID

+3

他正在使用「結束」選擇器,所以這些將工作 – naspinski 2010-08-02 11:49:00

1

設置QuestionAndAnswerEditorDiv.Visible = false;將意味着它不會呈現給頁面。在後面的代碼執行以下操作:

QuestionAndAnswerEditorDiv.Attributes.Add("style", "display:none"); 
QuestionandAnswerTextArea.Attributes.Add("style", "display:none"); 

JQuery的節目()函數使用的顯示屬性,將其設置爲「塊」,這將使其可見。

+1

我也試過這也,但它也不適合我。我更新了我的問題,請查看它 – stackuser1 2010-08-02 11:54:29

+0

@ stackuser1 - 如果您繼續在代碼隱藏中將它們隱藏在服務器上,它們將永遠不會顯示在HTML源代碼中,以使它們在客戶端上可見。按照上面的@Daniel Dyson的例子,用他的代碼片段替換你的visible = false。 – 2010-08-02 13:55:24

0

這可能不起作用,因爲DIV是不會渲染爲輸入元素和標籤在asp.net呈現爲跨度元素,以便檢查控件的類型

for div 
$("div[name$='QuestionAndAnswerEditorDiv']").show(); 

for label 
$("span[name$='answerLabel1']").show() 

for textbox 
$("input[name$='wmd-AnswerTextBox']").show() 

編輯:

所以正如我在我的答案建議使用適當的jQuery selctor,使這會爲你工作

編輯1

因此,而不是使控制visible= false集出現sytles到disply:none讓你控制頁面上avaialbe,您可以使用jQuery/JavaScript的

+0

y -1 ???????????????? – 2010-08-04 06:51:07