我在ASPX页面上有两个面板和一个文本框。两个面板都包含静态文本以及单选按钮以及必需的字段验证器。要求如下。
现在,问题是:
文本框值可以由用户更改,因此根据输入的值,使用jQuery我需要显示适当的面板。我不想为每个静态文本添加标签,然后逐个为所有标签和单选按钮设置相同的属性;这就是我使用<asp:Panel>
。
panelNA.Style.Add(HtmlTextWriterStyle.Display, "none")
,但这也不起作用。由于静态文本和控件仍在UI上可见。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>
答案 0 :(得分:0)
在后面的代码中使用此
pnl.Style.Add("display", "none");
要从javascript中禁用验证器,请使用此
ValidatorEnable(document.getElementById('<%= reqfile.ClientID %>'), false);
ValidatorEnable(document.getElementById('<%= reqfile.ClientID %>'), true);
为了显示隐藏div,您不需要知道div的可见状态,因为根据您提到的逻辑,div将根据文本框的值隐藏或显示。
另请在粘贴前格式化代码。
答案 1 :(得分:0)
如果设置Visible =&#34; false&#34;在.aspx标记/代码后面,ASP.Net控件不会在页面中呈现。
最好删除Visible =&#34; false&#34;在面板中设置并添加样式display:none。
如果你想在后面的代码中使用此代码
pnlUpdateDisplay.Style.Add(HtmlTextWriterStyle.Display,"none");
然后使用
$('#<%=pnlUpdateDisplay.ClientID %>').toggle()