Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OnCheckedChanged事件根本不在GridView中触发_C#_Asp.net_Events_Checkbox_Oncheckedchanged - Fatal编程技术网

C# OnCheckedChanged事件根本不在GridView中触发

C# OnCheckedChanged事件根本不在GridView中触发,c#,asp.net,events,checkbox,oncheckedchanged,C#,Asp.net,Events,Checkbox,Oncheckedchanged,我在TemplateField中有一个带有asp复选框的GridView。TemplateField的定义如下: <asp:TemplateField HeaderText="HeaderName"> <ItemTemplate> <asp:CheckBox ID="checkBoxId" runat="server" OnCheckedChanged="MyCheckChangedMethod" AutoPostBack="true"/&g

我在TemplateField中有一个带有asp复选框的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,因此我不必手动连接事件。我以前从来没有这样做过。我在同一个页面上有一个按钮,它的设置方式与单击事件完全相同,断点在该页面中被很好地命中

有什么想法吗?

试试:

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

还要确保web.config已将debug设置为true(认为已完成)。

复选框控件的回发事件不会正确触发,因为它位于会损坏控件ID的GridView中

如果需要复选框来反映数据,可以使用对象并以这种方式绑定

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


有多种方法可以解决此问题。

您需要在
asp:CheckBox
标记中添加
AutoPostback=True

在触发控件事件之前调用
DataBind
时会出现此问题。 如果在
Page\u Load
中调用
DataBind

if(!isPostBack){}
并在事件处理程序本身中调用
DataBind

代码文件位于文件头中。正如我在底部所说,我的按钮点击事件工作正常,只是GridView中的复选框给了我问题。此外,您建议的代码与上面定义“我的复选框”的方式完全相同。并且,该方法通过使用object和EventArgs的适当方法签名来正确定义。这就是问题如此令人沮丧的原因。我知道如何通过ASP.net Markupup设置活动,这只是一个建议。我尝试了自己编写的代码(无网格视图),效果很好。该函数包含一些代码还是为空?
public void MyCheckChangedMethod(object sender, EventArgs e)
{
  bool b = false;//your data here
}