c# – 检查Repeater中的Checkbox时未触发的OnCheckedChanged事件

我是一个相对较新的开发人员,并且只在全职工作了大约6个月,所以提前感谢您阅读和/或回答我的问题

我有一个数据中转中继器.在这个中继器中,我有一个gridview,sqlDS和2个复选框.两个复选框都有一个OnCheckedChanged事件,Autopostback设置为true.转发器也有一个OnItemDataBound事件.

以下是我的代码布局的示例:

<asp:Repeater ID="Repeater1" OnItemDataBound="Repeater1_ItemDataBound">
        <ItemTemplate>
            <asp:Panel>
                <asp:UpdatePanel>
                    <ContentTemplate>
                        <asp:CheckBox ID="CheckBox1" Autopostback="True" OnCheckedChanged="CheckBox1_CheckedChanged">
                        <asp:CheckBox ID="CheckBox2"Autopostback="True" OnCheckedChanged="CheckBox2_CheckedChanged">
                        <asp:Gridview ID="Gridview1" DataSourceID="sqlDataSource1">
                        <asp:sqlDataSource ID="sqlDataSource1" SelectCommand="SP1" SelectCommandType="StoredProcedure">
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:Panel>
        </ItemTemplate>
    </asp:Repeater>

和C#

protected void CheckBox1_CheckedChanged(object sender,EventArgs e)
    {
        if (CheckBox1.Checked == true)
            {
                if (CheckBox2.Checked == true)
                    sqlDataSource1.SelectCommand = "SP1";
                else
                    sqlDataSource1.SelectCommand = "SP2";
            }
            else
                sqlDataSource1.SelectCommand = "SP3";
    }
    protected void CheckBox2_CheckedChanged(object sender,EventArgs e)
    {
        if (CheckBox2.Checked == true)
            {
                if (CheckBox1.Checked == true)
                    sqlDataSource1.SelectCommand = "SP3";
                else
                    sqlDataSource1.SelectCommand = "SP2";
            }
            else
                sqlDataSource1.SelectCommand = "SP1";
    }

    protected void Repeater1_ItemDataBound(object sender,RepeaterItemEventArgs e)
    {
        //Uses FindControl to Databind the GV and hides it if GV.Rows.Count==0
    }

我正在AJAX TabPanel中完成所有这些工作.我有一个页面,这段代码完美地工作,但它不在另一页的转发器内.

本质上,我有一个带有gridview的页面加载,这两个复选框改变了SP填充gridview的内容.我遇到的问题是当你取消选中复选框(它们开始检查)时,它1.只需重新检查自己和2.不要点击CheckedChanged事件.

任何帮助将不胜感激.

解决方法

您需要为复选框设置AutopostBack = True属性,并注册/分配通过UpdatePanel控件的Triggers属性添加到UpdatePanel的所有控件的事件处理程序.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...