加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:47:45 所属栏目:百科 来源:网络整理
导读:我是一个相对较新的开发人员,并且只在全职工作了大约6个月,所以提前感谢您阅读和/或回答我的问题 我有一个数据中转中继器.在这个中继器中,我有一个gridview,SQLDS和2个复选框.两个复选框都有一个OnCheckedChanged事件,AutoPostback设置为true.转发器也有一个
我是一个相对较新的开发人员,并且只在全职工作了大约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的所有控件的事件处理程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读