打印

[asp.net教程] gridview 实现服务器端和客户端全选的两种方法

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

代码很简单,这里就不累述了。看代码如下:
   
  c#
   
  <%@ 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.cells[0].getelementsbytagname("input")[0].checked = ocheckbox.checked;
   }
   }
   
   //]]>
   </script>
   
  </head>
  <body>
   <form id="form1" runat="server">
   <table style="width: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>

TOP

返回顶部
AYBlue

Processed in 0.062526 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-10 12:03 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP