1

那里。我有一个带有一列复选框的gridview,当它是一个小型测试项目时它正在工作,但是当它添加到我的团队项目的页面时,它停止触发checkedChanged事件。复选标记仍然出现或消失,但没有任何反应。唯一的主要区别是我最初使用的是 sqlDataSource 对象,但对于新项目,我必须将其绑定到后面代码中的数据库。

这是我的html:

  <asp:TemplateField HeaderText="Create Incident">
            <ItemTemplate>
                <asp:CheckBox ID="Selections" runat="server" ViewStateMode = "Enabled" OnCheckedChanged="CheckBox1_CheckedChanged" />
            </ItemTemplate>
        </asp:TemplateField>

和一些简单的后台代码:

  protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        Console.WriteLine("clicked!");

    }
4

3 回答 3

5

设置AutoPostBackTrue启用回发

<asp:CheckBox ID="Selections" runat="server" ViewStateMode = "Enabled" OnCheckedChanged="CheckBox1_CheckedChanged" AutoPostBack="True" />
于 2013-08-14T20:15:21.387 回答
2

我找到了解决方案。我在页面加载事件中的内容周围添加了条件块 if(!page.isPostBack)。

于 2013-08-14T21:35:32.093 回答
0

一直搜索了大约一个小时,直到我发现 OnCheckedChanged 事件没有在我的页面上触发的实际原因是由于名称重复。呵呵

输入控件的名称为“submit”,并且在我的 JavaScript 中也存在一个名为 submit() 的方法。每次需要触发事件时,JavaScript 解释器都会混淆控件名称和函数名称。更改了控件的名称,一切都恢复正常。

于 2018-05-29T07:16:25.693 回答