2015-09-15 40 views
5

在我WebForm我想总价格变化时,用户检入一个产品,但是我有这个问题,我的代码,的CheckedChanged事件不会触发

CheckedChanged事件在不触发,当我检查CheckBox

只有当我点击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;  
    } 

} 

回答

5

所有ASP.NET服务器控件除了ButtonHyperlinkLinkButtonfalse默认AutoPostBack属性,所以你应该在你的CheckBox设置AutoPostBack="true"

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

只有当我点击按钮

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

+0

非常感谢! –