为了账号安全,请及时绑定邮箱和手机立即绑定

复选框控件的 AsyncPostBackTrigger 不触发

复选框控件的 AsyncPostBackTrigger 不触发

C#
慕标5832272 2021-12-05 16:39:22
问题的背景:我有一个复选框和一个按钮。该按钮在页面加载时被禁用并显示为灰色。我希望复选框在选中时启用并重新着色按钮,如果未选中则恢复更改。将其视为用户协议页面,用户在其中接受条款并需要单击复选框以继续。页面上方的网格视图和其他组件会在回发时中断,因此我在网上搜索时发现可以使用 UpdatePanel。认为这比为复选框编写 jQuery 更简单,但它不起作用代码:ASPX<asp:UpdatePanel ID ="upCheckbox" runat="server">    <ContentTemplate>        <asp:CheckBox ID="checkLabel" runat="server" OnCheckedChanged="checkLabel_CheckedChanged"/><asp:Label ID="AknowledgementLabel" runat="server" Text="Info is correct & Enable button"></asp:Label>        <br /><br />        <asp:Button ID="btnSubmit" Text="Submit Application" CssClass="jqbutton" OnClick="btnSubmit_Click" runat="server"/>    </ContentTemplate>    <Triggers>        <asp:AsyncPostBackTrigger ControlID="checkLabel" EventName="CheckedChanged"/>    </Triggers></asp:UpdatePanel>背后的代码:protected void Page_Load(object sender, EventArgs e){    btnSubmit.Enabled = false;    btnSubmit.ForeColor = System.Drawing.Color.Gray;}protected void checkLabel_CheckedChanged(object sender, EventArgs e){    if (checkLabel.Checked)    {        btnSubmit.Enabled = true;        btnSubmit.ForeColor = System.Drawing.ColorTranslator.FromHtml("#336699");    }    else    {        btnSubmit.Enabled = false;        btnSubmit.ForeColor = System.Drawing.Color.Gray;    }}问题:该复选框不起作用,提交按钮保持禁用状态。不确定我是出于适当目的使用更新面板还是遗漏了什么。是否可以按照我尝试的方式完成此操作,还是应该继续使用 jQuery?
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

您缺少AutoPostback="true"CheckBox 控件。默认情况下,它设置为false。由于缺少自动回发,您的事件将无法到达服务器端。


<asp:UpdatePanel ID ="upCheckbox" runat="server">

    <ContentTemplate>

        <asp:CheckBox ID="checkLabel" runat="server" AutoPostback="true" OnCheckedChanged="checkLabel_CheckedChanged"/>

        <asp:Label ID="AknowledgementLabel" runat="server" Text="Info is correct & Enable button"></asp:Label>

        <br /><br />

        <asp:Button ID="btnSubmit" Text="Submit Application" CssClass="jqbutton" OnClick="btnSubmit_Click" runat="server"/>

    </ContentTemplate>

    <Triggers>

        <asp:AsyncPostBackTrigger ControlID="checkLabel" EventName="CheckedChanged"/>

    </Triggers>

</asp:UpdatePanel>


查看完整回答
反对 回复 2021-12-05
  • 1 回答
  • 0 关注
  • 308 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信