【问题标题】:CheckedChanged event is not fired未触发 CheckedChanged 事件
【发布时间】:2015-09-15 19:39:46
【问题描述】:

在我的WebForm 中,我希望在用户检查一种产品时更改总价,但我的代码有这个问题,

当我检查 CheckBox 时,CheckedChanged 事件没有触发

只有当我点击Button(用作清除按钮)时才会触发,并且我没有在按钮事件中包含该代码!

这是我的代码:

public partial class _Default : System.Web.UI.Page
{
    int total = 0;
    String strtotal;

    protected void ckb1_CheckedChanged(object sender, EventArgs e)
    {            
        if (ckb1.Checked)
        {                
            total = total + 100;
            strtotal = total.ToString();
            lbl2.Text = strtotal;
        } 

    }

    protected void ckb2_CheckedChanged(object sender, EventArgs e)
    {
        if (ckb2.Checked)
        {
            total = total + 80;
            strtotal = total.ToString();
            lbl2.Text = strtotal;
        }
    }

    protected void ckb3_CheckedChanged(object sender, EventArgs e)
    {
        if (ckb3.Checked)
        {
            total = total + 70;
            strtotal = total.ToString();
            lbl2.Text = strtotal;
        }
    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        TextBox1.Text = " ";
        ckb1.Checked = false;
        ckb2.Checked = false;
        ckb3.Checked = false;    
    }

}

【问题讨论】:

    标签: c# asp.net webforms


    【解决方案1】:

    除了ButtonHyperlinkLinkButton 之外的所有 ASP.NET 服务器控件都有一个默认的AutoPostBack 属性false,因此您应该在CheckBox 中设置AutoPostBack="true"

    <asp:CheckBox ID="ckb1" runat="server" AutoPostBack="true" OnCheckedChanged="ckb1_CheckedChanged" />
    

    只有当我点击按钮时才会触发

    正如我所说,这是因为Button 默认具有trueAutoPostBack 属性,因此在您检查CheckBox 然后单击按钮后,CheckBox 状态会自动回发到服务器。

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多