我们可以使用“Eval”动态启用或禁用ASP.NET中的控件

时间:2013-02-27 10:18:15

标签: asp.net eval

   <asp:CheckBox ID="cbIsSignificantRegistration" runat="server" 
                AutoPostBack="True" />

   <asp:TextBox ID="txtSignificantOtherName" ReadOnly='<%# cbIsSignificantRegistration.Checked %>' runat="server" class="tblTxt" MaxLength="100"></asp:TextBox>

   <asp:Button ID="btnSignificantOtherSearch" runat="server" Enabled='<%# cbIsSignificantRegistration.Checked %>' OnClick="Button1_Click" Text="Search" />

参考上面的代码我想在用户选中CheckBox时启用TextBox和Button,反之亦然。而且我想在不触发Checkbox的CheckChanged事件的情况下做同样的事情。

是否可以在ASP.NET中使用Eval,就像我在上面的代码中使用它一样。

注意:我已经使用了上面的代码,但在我的情况下它不起作用。

1 个答案:

答案 0 :(得分:1)

ASP.NET是服务器端,因此这只会在页面加载时设置启用状态。之后的任何用户交互都不会被触发。

最好的解决方案是使用Javascript触发事件来启用/禁用文本框。

使用jQuery:

$(function(){
    $(".chk").change(function(){
        $(".txt").attr("disabled", !$(this).is(":checked")); 
    });
});

<asp:CheckBox ID="cbIsSignificantRegistration" runat="server" 
                AutoPostBack="True" CssClass="chk" />

<asp:TextBox ID="txtSignificantOtherName" runat="server" class="tblTxt txt" MaxLength="100"></asp:TextBox>

现场演示: http://jsfiddle.net/VnCpP/