在GridView中加入CheckBox实现全选以及提交CheckBox选中的相关内容

来源:互联网 发布:android 网络切换监听 编辑:程序博客网 时间:2024/04/29 23:28

首先我要说明的是:1.实现GridView中CheckBox全选:我采用JavaScript在前台实现。

                           2.实现提交CheckBox选中的相关内容:采用的是在后台遍历GridView中的每行,

                              筛选出CheckBox选中项,再进行逻辑处理。

 

1.在GridView中加入<asp:TemplateField>,在<HeaderTemplate>中放一个HTML控件CheckBox进行全选,在<ItemTemplate>中放一个服务器控件CheckBox来选中GridView中每一行。

例如:

        <asp:TemplateField>
                    <HeaderTemplate>
                        <input type="checkbox" id="chkAll" name="chkAll" onclick="Check(this,'^GridView1')" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>

其中HTML控件中的onclick是实现CheckBox全选的逻辑。

下面是onclick="Check(this,'^GridView1')"的代码:

 

        <script language="javascript" type="text/javascript">

        function Check(parentChk, pattern) {
            var elements = document.getElementsByTagName("INPUT");
            for (i = 0; i < elements.length; i++) {
                if (parentChk.checked == true) {
                    if (IsCheckBox(elements[i]) && IsMatch(elements[i].id, pattern)) {
                        elements[i].checked = true;
                    }
                }
                else {
                    if (IsCheckBox(elements[i]) && IsMatch(elements[i].id, pattern))
                    { elements[i].checked = false; }
                }
            }
        }
        function IsMatch(id, pattern) {
            var regularExpression = new RegExp(pattern);
            return id.match(regularExpression);
        }
        function IsCheckBox(chk) {
            return (chk.type == 'checkbox');
        }
    </script>

这个方法希望您自己品味。

 

2.接下来是提交CheckBox选中项

在后台提交按钮中加入下面代码:

            protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            string str="";
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {

                //精华都在这条if语句上
                if (((CheckBox)GridView1.Rows[i].Cells[0].Controls[1]).Checked == true)
                {
                    //进行逻辑处理的代码
                }
            }
        }

这里面Row[i]是GridView的每行,Cells[0]是每行的第几个单元格,Controls[1]是服务器控件的子控项。

 

不知道您看懂了没?写的不好,还请多指教!