OnCheckedChanged正在处理每个回发事件。怎么预防?

时间:2014-09-23 10:18:27

标签: c# asp.net

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中被问到,但我没有得到它。 请帮助。

2 个答案:

答案 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"]

知道哪个控件触发了该事件。因此可以检查使用该值。