OnCheckedChanged事件根本没有在GridView中触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OnCheckedChanged事件根本没有在GridView中触发相关的知识,希望对你有一定的参考价值。

我在TemplateField中有一个带有asp CheckBox的GridView。 TemplateField定义如下:

<asp:TemplateField HeaderText="HeaderName">
    <ItemTemplate>
        <asp:CheckBox ID="checkBoxId" runat="server" OnCheckedChanged="MyCheckChangedMethod" AutoPostBack="true"/>
    </ItemTemplate>
</asp:TemplateField>

当我在MyCheckChangedMethod中使用断点运行我的Web项目并单击该复选框时没有任何反应。断点没有被击中。我的Visual Studio调试器正在运行。

另外,我的页面定义中有AutoEventWireup = True,因此我不必手动挂接事件。我以前从来没有遇到过这样做的问题。我在同一页面上有一个按钮设置与点击事件完全相同的方式,并且断点得到了很好的打击。

有任何想法吗?

答案

复选框控件的回发事件将无法正确触发,因为它在GridView中会破坏控件的ID。

如果您需要Checkbox来反映数据,您可以使用CheckBoxField对象并以此方式绑定。

如果需要它对该行执行操作,您可能需要使用CommandName属性和RowCommand事件查看ButtonField对象。

有方法来access the checkboxes within the GridView server side

另一答案

你需要在AutoPostback = True标签中添加asp:CheckBox

另一答案

在控制事件触发之前调用DataBind时会发生此问题。如果你在DataBind中调用Page_Load,请将其放入if (!isPostBack) {}并在事件处理程序本身中调用DataBind

另一答案

尝试:

<asp:CheckBox  ID="checkBoxId" runat="server" AutoPostBack=true OnCheckedChanged="MyCheckChangedMethod"/>

确保aspx页面顶部有CodeFile =“YOUR_FILE.aspx.cs”。

还要确保您的函数MyCheckChangedMethod被定义为

函数应该有对象发送者,EventArgs e。

public void MyCheckChangedMethod(object sender, EventArgs e)
{
  bool b = false;//your data here
}

还要确保web.config的调试设置为true(想想已经完成)。

以上是关于OnCheckedChanged事件根本没有在GridView中触发的主要内容,如果未能解决你的问题,请参考以下文章

在自定义控件中,有CheckBox控件,当触发OnCheckedChanged事件时

为啥android的checkbox的setChecked方法不触发onCheckedChanged事件

网格视图中复选框的 onCheckedChanged 事件

未选中复选框时,asp:checkbox 的 OnCheckedChanged 事件处理程序不会触发

android studio 无法通过匿名内部类调用oncheckedchanged方法

android onCheckedChanged 用于无线电组