zoukankan      html  css  js  c++  java
  • GridView中CheckBox的用法

    以下是我在GridView中控制CheckBox的全选/取消全选,根据子CheckBox处理全选CheckBox状态的操作并获取所选GridView中所选行的列的值。
    脚本代码:
        <script language="javascript" type="text/javascript">
        //全选/全取消GridView中的CheckBox
        //参数gv:  GridView的ID
        //参数input2: 功能控件ID(全选CheckBox)
        function CheckAll(gv,input2)
        {
            var objForm = document.getElementById(gv);
            var objLen = objForm.rows.length;
            for (var iCount = 0; iCount < objLen; iCount++)
            {
                 objForm.rows[iCount].cells[0].getElementsByTagName("INPUT")[0].checked = input2.checked;
            }
        }
           
        function CheckSelect(gv,input2)
        {
            if (input2.checked == true)
            {
                if(GetCheckBoxCount(gv) == GetCheckedBoxCount(gv))
                {
                    form1.Checkbox3.checked = true;
                }
            }
            else
            {
                form1.Checkbox3.checked = false;
            }
        }
       
        function GetCheckBoxCount(gv)
        {
            var objForm = document.getElementById(gv);
            var objLen = objForm.rows.length;
            return (objLen-1);
        }
       
        function GetCheckedBoxCount(gv)
        {
            var count;
            count = 0;
            var objForm = document.getElementById(gv);
            var objLen = objForm.rows.length;
            for(var iCount = 0; iCount < objLen; iCount++)
            {
                 if(objForm.rows[iCount].cells[0].getElementsByTagName("INPUT")[0].checked == true)
                 {
                     count ++;
                 }
            }
            return count;
        }   
        </script>
    页面代码:
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                DataSourceID="LinqDataSource1" DataKeyNames="CarID">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox2" runat="server" Width="20px" onclick="CheckSelect('GridView1',this)"/>
                        </ItemTemplate>
                        <HeaderTemplate>
                            <input ID="Checkbox3" type="checkbox" style="20px" onclick="CheckAll('GridView1',this)"/>
                        </HeaderTemplate>
                        <ItemStyle Width="20px" />
                    </asp:TemplateField>
                    <asp:BoundField DataField="CarID" HeaderText="CarID" ReadOnly="True"
                        SortExpression="CarID" />
                </Columns>
            </asp:GridView>
            <br />
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            <br />

            <asp:LinqDataSource ID="LinqDataSource1" runat="server"
                ContextTypeName="DBML.CarDataContext" Select="new (CarID, TeamID, DriverID)"
                TableName="CarInfo">
            </asp:LinqDataSource>    
        </div>
        </form>
    < /body>

    cs文件代码:
     protected void Button1_Click(object sender, EventArgs e)
            {
                int count = 0;
                string items = "";
                foreach (GridViewRow item in GridView1.Rows)
                {
                    CheckBox cb = (CheckBox)item.FindControl("CheckBox2");
                    if (cb.Checked)
                    {
                        items = items + item.Cells[1].Text;//已选行的第2列的值
                        count++;
                    }
                }
                Response.Write(count.ToString() + items);
            }

    以上代码可能通用性还有待增强,也希望对大家有所帮助。谢谢!

  • 相关阅读:
    安装Sql Server 2008 错误:the folder "c:\temp\sql2008_fullsp3_standard\pcu" you specified is not for pcusource input setting. Specify a valid folder.
    Log4Net error: Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData.....
    Java成长路线
    项目开发之故事经典:教授的裤子分析
    书籍的未来数字化革命的产物:电子书
    如何访问我的博客
    ComboBox应该如何绑定数据
    C#中的常用关键字
    如何编写优秀软件
    为什么现在都用面向对象开发,为什么现在都用分层开发结构?
  • 原文地址:https://www.cnblogs.com/minotmin/p/3438722.html
Copyright © 2011-2022 走看看