A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

这篇文章主要介绍了gridview实现服务器端和客户端全选的两种方法,需要的朋友可以参考下

  1. <%@ Page Language="C#" AutoEventWireup="true"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <script runat="server">
  5. // 计算数据,完全可以从数据看取得
  6. ICollection CreateDataSource()
  7. {
  8. System.Data.DataTable dt =new System.Data.DataTable();
  9. System.Data.DataRow dr;
  10. dt.Columns.Add(new System.Data.DataColumn("序号", typeof(System.String)));
  11. dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
  12. dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
  13. dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
  14. dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
  15. dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));
  16. for (int i =0; i <8; i++)
  17. {
  18. System.Random rd =new System.Random(Environment.TickCount * i); ;
  19. dr = dt.NewRow();
  20. dr[0] = i.ToString();
  21. dr[1] ="【孟子】"+ i.ToString();
  22. dr[2] = System.Math.Round(rd.NextDouble() *100, 2);
  23. dr[3] = System.Math.Round(rd.NextDouble() *100, 2);
  24. dr[4] = System.Math.Round(rd.NextDouble() *100, 2);
  25. dr[5] = System.Math.Round(rd.NextDouble() *100, 2);
  26. dt.Rows.Add(dr);
  27. }
  28. System.Data.DataView dv =new System.Data.DataView(dt);
  29. return dv;
  30. }
  31. protected void Page_Load(object sender, EventArgs e)
  32. {
  33. if (!IsPostBack)
  34. {
  35. GridView2.DataSource = GridView1.DataSource = CreateDataSource();
  36. GridView2.DataBind();
  37. GridView1.DataBind();
  38. }
  39. }
  40. protected void Button1_Click(object sender, EventArgs e)
  41. {
  42. Ret1.Text ="";
  43. foreach (GridViewRow gvr in GridView1.Rows)
  44. {
  45. CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
  46. if (ch.Checked)
  47. {
  48. Ret1.Text +="<li>GridView1 您选择的是(键值):"+ GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
  49. }
  50. }
  51. }
  52. protected void Button2_Click(object sender, EventArgs e)
  53. {
  54. Ret2.Text ="";
  55. foreach (GridViewRow gvr in GridView2.Rows)
  56. {
  57. CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
  58. if (ch.Checked)
  59. {
  60. Ret2.Text +="<li>GridView2 您选择的是(键值):"+ GridView2.DataKeys[gvr.DataItemIndex].Value.ToString();
  61. }
  62. }
  63. }
  64. protected void CheckAll(object sender, EventArgs e)
  65. {
  66. CheckBox cbx = (CheckBox)sender;
  67. foreach (GridViewRow gvr in GridView1.Rows)
  68. {
  69. CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
  70. ch.Checked = cbx.Checked;
  71. }
  72. }
  73. </script>
  74. <html xmlns="http://www.w3.org/1999/xhtml">
  75. <head>
  76. <title>GridView 实现服务器端和客户端全选的两种方法</title>
  77. <script type="text/javascript">
  78. //<![CDATA[
  79. function CheckAll(oCheckbox)
  80. {
  81. var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
  82. for(i =1;i < GridView2.rows.length; i++)
  83. {
  84. GridView2.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
  85. }
  86. }

  87. //]]>
  88. </script>
  89. </head>
  90. <body>
  91. <form id="Form1" runat="server">
  92. <table style="width:800px;font-size:12px;">
  93. <tr valign="top">
  94. <td>
  95. <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
  96. GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
  97. <HeaderStyle BackColor="#EDEDED" Height="26px"/>
  98. <Columns>
  99. <asp:TemplateField>
  100. <HeaderTemplate>
  101. <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" AutoPostBack="true" OnCheckedChanged="CheckAll"/>
  102. </HeaderTemplate>
  103. <ItemTemplate>
  104. <asp:CheckBox ID="ItemCheckBox" runat="server"/>
  105. </ItemTemplate>
  106. </asp:TemplateField>
  107. <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
  108. <asp:BoundField DataField="语文" HeaderText="语文"/>
  109. <asp:BoundField DataField="数学" HeaderText="数学"/>
  110. <asp:BoundField DataField="英语" HeaderText="英语"/>
  111. <asp:BoundField DataField="计算机" HeaderText="计算机"/>
  112. </Columns>
  113. </asp:GridView>
  114. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="得到选择的行值"/>
  115. </td>
  116. <td align="right">
  117. <asp:GridView ID="GridView2" runat="server" Font-Size="12px" BackColor="#FFFFFF"
  118. GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
  119. <HeaderStyle BackColor="#EDEDED" Height="26px"/>
  120. <Columns>
  121. <asp:TemplateField>
  122. <HeaderTemplate>
  123. <input id="Checkbox2" type="checkbox" onclick="CheckAll(this)" runat="server"/><label>全选</label>
  124. </HeaderTemplate>
  125. <ItemTemplate>
  126. <asp:CheckBox ID="ItemCheckBox" runat="server"/>
  127. </ItemTemplate>
  128. </asp:TemplateField>
  129. <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
  130. <asp:BoundField DataField="语文" HeaderText="语文"/>
  131. <asp:BoundField DataField="数学" HeaderText="数学"/>
  132. <asp:BoundField DataField="英语" HeaderText="英语"/>
  133. <asp:BoundField DataField="计算机" HeaderText="计算机"/>
  134. </Columns>
  135. </asp:GridView>
  136. <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="得到选择的行值"/>
  137. </td>
  138. </tr>
  139. <tr valign="top">
  140. <td>
  141. <asp:Literal ID="Ret1" runat="server"></asp:Literal>
  142. </td>
  143. <td align="right">
  144. <asp:Literal ID="Ret2" runat="server"></asp:Literal>
  145. </td>
  146. </tr>
  147. </table>
  148. </form>
  149. </body>
  150. </html>
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马