我在ASPX頁面上有兩個面板和一個文本框。這兩個面板都包含靜態文本以及單選按鈕以及所需的字段驗證程序。要求如下。asp:panel show hide不能和Jquery一起使用
- 每當第一次加載頁面時,如果文本框的值大於1000,則應該不顯示第一個面板,應該顯示第2個。
- 如果值小於1000,第一個面板應該顯示,第二個應該不顯示。現在
,問題是:
文本框的值可以由用戶和被改變從而根據輸入的值,使用jQuery我需要出示相應的面板。我不希望每個靜態文本都有標籤,然後爲所有標籤和單選按鈕逐一設置相同的屬性;這就是爲什麼我使用了<asp:Panel>
。
- 我無法將代碼背後的visible屬性設置爲false,因爲此面板不會在ASPX頁面上呈現,並且顯示,隱藏不起作用。
- 我試着從後面的代碼設置
panelNA.Style.Add(HtmlTextWriterStyle.Display, "none")
,但這也行不通。由於靜態文本和控件在用戶界面上仍然可見。 - 由於我已經要求在面板內的單選按鈕上使用字段驗證器,所以我希望如果面板分別隱藏或顯示,應禁用和啓用這些驗證器。
- 保存東西時,我無法檢查面板的狀態是否可見,因爲它是由jQuery設置的。所以它在服務器端不可用,它總是說
visible = true
。
代碼:
function disablePanelNA() {
var value = 0;
value = parseInt($('#<%=txt1.ClientID %>').val(), 10);
if (value < 1000) {
$('#<%= panel.ClientID %>').hide();
$('#<%= panelNA.ClientID %>').show();
}
else
{
$('#<%= panel.ClientID %>').show();
$('#<%= panelNA.ClientID %>').hide();
}
}
<asp:TextBox ID="txt1" runat="server" onChange="disablePanelNA()" />
<asp:Panel ID="panel" runat="server">
<tr>
<td class="numberColumnNoBold">a.</td>
<td>Do you want to continue?</td>
<td align="right">
<asp:RadioButtonList ID="rbl1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="Yes" Text="Yes" />
<asp:ListItem Value="No" Text="No" />
</asp:RadioButtonList>
<AjaxRequiredFieldValidator ID="id1" runat="server" ControlToValidate="rbl1"
ErrorMessage="Error occured" />
</td>
</tr>
<tr>
<td class="numberColumnNoBold">b.</td>
<td>Do you want to exit?</td>
<td align="right">
<asp:RadioButtonList ID="rbl2" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="Yes" Text="Yes" />
<asp:ListItem Value="No" Text="No" />
</asp:RadioButtonList>
<AjaxRequiredFieldValidator ID="id2" runat="server" ControlToValidate="rbl2"
ErrorMessage="Error occured again" />
</td>
</tr>
</asp:panel>
<asp:Panel ID="panelNA" runat="server">
<tr>
<td class="numberColumnNoBold">a.</td>
<td>Do you want to continue?</td>
<td align="right">
<td align="right">
<div style="text-align:right;font-weight:bold;padding-right:20px;">N/A</div>
</td>
</td>
</tr>
<tr>
<td class="numberColumnNoBold">b.</td>
<td>Do you want to exit?</td>
<td align="right">
<div style="text-align:right;font-weight:bold;padding-right:20px;">N/A</div>
</td>
</tr>
</asp:panel>
試圖格式化你的代碼,它看起來像它會永遠需要。 :) – Shoban