微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的所有控件的事件处理程序.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐