OnCheckedChanged 事件在不同控件的每个回发上触发。我该如何预防?
就像我想要 onCheckedChanged 一样,只能使用复选框。如何防止其他控件在回发时触发此事件?
ASPX:
<asp:TemplateField HeaderText="Show on Order"
HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="center"
ItemStyle-Width="15%">
<ItemTemplate>
<asp:CheckBox ID="chkShowOnOrder" runat="server" AutoPostBack="true"
Checked='<%# Bind("Show_Order") %>'
OnCheckedChanged="chkShowOnOrder_CheckedChanged"
ToolTip='<%# Bind("Document_ID") %>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
C#
protected void chkShowOnOrder_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
int docID = Convert.ToInt32(checkbox.ToolTip);
TableRow tr = (TableRow)checkbox.Parent.Parent;
/*Some other code below.*/
}
同样的问题在post中被问到,但我没有得到它。 请帮助。
答案 0 :(得分:0)
根据Radio button checked changed event fires twice 您可以验证哪个控件导致CheckedChanged事件触发,如下所示
protected void chkShowOnOrder_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb= sender as CheckBox ;
if (cb != null && cb.ID=="chkShowOnOrder")
{
//Your code here
}
}
答案 1 :(得分:0)
您可以查看
的值Request.Form["__EVENTTARGET"]
知道哪个控件触发了该事件。因此可以检查使用该值。