• GridView 实现服务器端和客户端全选的两种方法


    代码很简单,这里就不累赘了。看代码如下:<%@ Page Language="C#" AutoEventWireup="true"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    >

    <script runat="server">
     
    // 计算数据,完全可以从数据看取得
      ICollection CreateDataSource()
      {
        System.Data.DataTable dt
    =new System.Data.DataTable();
        System.Data.DataRow dr;
        dt.Columns.Add(
    new System.Data.DataColumn("序号", typeof(System.String)));
        dt.Columns.Add(
    new System.Data.DataColumn("学生姓名", typeof(System.String)));
        dt.Columns.Add(
    new System.Data.DataColumn("语文", typeof(System.Decimal)));
        dt.Columns.Add(
    new System.Data.DataColumn("数学", typeof(System.Decimal)));
        dt.Columns.Add(
    new System.Data.DataColumn("英语", typeof(System.Decimal)));
        dt.Columns.Add(
    new System.Data.DataColumn("计算机", typeof(System.Decimal)));

       
    for (int i =0; i <8; i++)
        {
          System.Random rd
    =new System.Random(Environment.TickCount * i); ;
          dr
    = dt.NewRow();
          dr[
    0] = i.ToString();
          dr[
    1] ="【孟子E章】"+ i.ToString();
          dr[
    2] = System.Math.Round(rd.NextDouble() *100, 2);
          dr[
    3] = System.Math.Round(rd.NextDouble() *100, 2);
          dr[
    4] = System.Math.Round(rd.NextDouble() *100, 2);
          dr[
    5] = System.Math.Round(rd.NextDouble() *100, 2);
          dt.Rows.Add(dr);
        }
        System.Data.DataView dv
    =new System.Data.DataView(dt);
       
    return dv;
      }

      protected
    void Page_Load(object sender, EventArgs e)
      {
       
    if (!IsPostBack)
        {

          GridView2.DataSource
    = GridView1.DataSource = CreateDataSource();
          GridView2.DataBind();
          GridView1.DataBind();
        }
      }

      protected
    void Button1_Click(object sender, EventArgs e)
      {
        Ret1.Text
    ="";
        foreach (GridViewRow gvr
    in GridView1.Rows)
        {
          CheckBox ch
    = (CheckBox)gvr.FindControl("ItemCheckBox");
         
    if (ch.Checked)
          {
            Ret1.Text
    +="<li>GridView1 您选择的是(键值):"+ GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
          }
        }
      }

      protected
    void Button2_Click(object sender, EventArgs e)
      {
        Ret2.Text
    ="";
        foreach (GridViewRow gvr
    in GridView2.Rows)
        {
          CheckBox ch
    = (CheckBox)gvr.FindControl("ItemCheckBox");
         
    if (ch.Checked)
          {
            Ret2.Text
    +="<li>GridView2 您选择的是(键值):"+ GridView2.DataKeys[gvr.DataItemIndex].Value.ToString();
          }
        }
      }

      protected
    void CheckAll(object sender, EventArgs e)
      {
        CheckBox cbx
    = (CheckBox)sender;
        foreach (GridViewRow gvr
    in GridView1.Rows)
        {
          CheckBox ch
    = (CheckBox)gvr.FindControl("ItemCheckBox");
          ch.Checked
    = cbx.Checked;
        }
      }
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
    <title>GridView 实现服务器端和客户端全选的两种方法</title>

     
    <script type="text/javascript">
     
    //<![CDATA[
      function CheckAll(oCheckbox)
      {
      
    var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
      
    for(i =1;i < GridView2.rows.length; i++)
       {
        GridView2.rows[i].cells[
    0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
       }
      }
     
     
    //]]>
      </script>

    </head>
    <body>
     
    <form id="Form1" runat="server">
       
    <table style="800px;font-size:12px;">
         
    <tr valign="top">
           
    <td>
             
    <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
                GridLines
    ="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
               
    <HeaderStyle BackColor="#EDEDED" Height="26px"/>
               
    <Columns>
                 
    <asp:TemplateField>
                   
    <HeaderTemplate>
                     
    <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" AutoPostBack="true" OnCheckedChanged="CheckAll"/>
                   
    </HeaderTemplate>
                   
    <ItemTemplate>
                     
    <asp:CheckBox ID="ItemCheckBox" runat="server"/>
                   
    </ItemTemplate>
                 
    </asp:TemplateField>
                 
    <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
                 
    <asp:BoundField DataField="语文" HeaderText="语文"/>
                 
    <asp:BoundField DataField="数学" HeaderText="数学"/>
                 
    <asp:BoundField DataField="英语" HeaderText="英语"/>
                 
    <asp:BoundField DataField="计算机" HeaderText="计算机"/>
               
    </Columns>
             
    </asp:GridView>
             
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="得到选择的行值"/>
           
    </td>
           
    <td align="right">
             
    <asp:GridView ID="GridView2" runat="server" Font-Size="12px" BackColor="#FFFFFF"
                GridLines
    ="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
               
    <HeaderStyle BackColor="#EDEDED" Height="26px"/>
               
    <Columns>
                 
    <asp:TemplateField>
                   
    <HeaderTemplate>
                     
    <input id="Checkbox2" type="checkbox" onclick="CheckAll(this)" runat="server"/><label>全选</label>
                   
    </HeaderTemplate>
                   
    <ItemTemplate>
                     
    <asp:CheckBox ID="ItemCheckBox" runat="server"/>
                   
    </ItemTemplate>
                 
    </asp:TemplateField>
                 
    <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
                 
    <asp:BoundField DataField="语文" HeaderText="语文"/>
                 
    <asp:BoundField DataField="数学" HeaderText="数学"/>
                 
    <asp:BoundField DataField="英语" HeaderText="英语"/>
                 
    <asp:BoundField DataField="计算机" HeaderText="计算机"/>
               
    </Columns>
             
    </asp:GridView>
             
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="得到选择的行值"/>
           
    </td>
         
    </tr>
         
    <tr valign="top">
           
    <td>
             
    <asp:Literal ID="Ret1" runat="server"></asp:Literal>
           
    </td>
           
    <td align="right">
             
    <asp:Literal ID="Ret2" runat="server"></asp:Literal>
           
    </td>
         
    </tr>
       
    </table>
     
    </form>
    </body>
    </html>

    作者:江宁织造
    博客:http://www.cnblogs.com/wgx0428/
  • 相关阅读:
    2016-09-13面试记录
    javascript中的深度拷贝的实现过程及深拷贝的几种方法。
    javascript中的for in循环
    常见的兼容问题及其解决方法。
    一次清空所有数据方法
    数组排序
    css对齐 挖坑~
    css reset样式重置
    CSS 表单
    CSS 表格
  • 原文地址:https://www.cnblogs.com/wgx0428/p/2495193.html
Copyright © 2020-2023  润新知