在我的WebForm
我想要在用户检查一个产品时更改总价格,但我的代码存在此问题,
当我检查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;
}
}
答案 0 :(得分:6)
除Button
,Hyperlink
和LinkButton
之外的所有ASP.NET服务器控件都具有AutoPostBack
的默认false
属性,因此您应设置{{3在CheckBox
:
<asp:CheckBox ID="ckb1" runat="server" AutoPostBack="true" OnCheckedChanged="ckb1_CheckedChanged" />
只有在我点击按钮
时才会触发
正如我所说,这是因为默认情况下Button
具有AutoPostBack
true
属性,因此在您选中CheckBox
然后点击{{1}按钮后} state自动回发到服务器。