【问题标题】:OnCheckedChanged event not firing in GridView at allOnCheckedChanged 事件根本没有在 GridView 中触发
【发布时间】:2010-11-20 07:44:28
【问题描述】:

我在 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,因此我不必手动连接事件。我以前从来没有遇到过这样的问题。我在同一页面上有一个按钮,设置方式与单击事件完全相同,并且断点在其中被击中。

有什么想法吗?

【问题讨论】:

    标签: c# asp.net events checkbox oncheckedchanged


    【解决方案1】:

    试试:

    <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 已将 debug 设置为 true(认为已经完成)。

    【讨论】:

    • 代码文件在文件头。就像我在底部所说的那样,我的按钮单击事件工作正常,只是 GridView 中的 CheckBox 给我带来了问题。此外,您建议的代码与上面定义我的复选框的方式完全相同。并且该方法使用带有对象和 EventArgs 的正确方法签名正确定义。这就是问题如此令人沮丧的原因。我知道如何通过 ASP.net 标记设置事件
    • 只是一个建议。我尝试了我自己的代码(没有网格视图),它有效。该函数是否包含一些代码或者它是空的?
    【解决方案2】:

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

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

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

    有办法access the checkboxes within the GridView server side

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2017-06-09
          • 2011-09-29
          • 2013-02-21
          • 2012-06-20
          • 1970-01-01
          • 2016-04-13
          • 2014-04-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多