asp.net GridView控件中实现全选的解决方案

  第一种:利用客户端控件实现

  JS:

  

复制代码 代码如下:

  <script type="text/javascript">

  function checkAll()

  {

  var checklist=document.getElementsByTagName("input");

  for(var i=0;i<checklist.length;i++)

  {

  if(checklist[i].type=="checkbox")

  {

  checklist[i].checked=document.form1.ck.checked;

  }

  }

  }

  </script>

  GridView控件:

  

复制代码 代码如下:

  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" >

  <Columns>

  <asp:BoundField DataField="ProductID" HeaderText="产品编号" />

  <asp:TemplateField>

  <HeaderTemplate>

  <input id="ck" type="checkbox" onclick="checkAll();" />

  </HeaderTemplate>

  <ItemTemplate>

  <asp:CheckBox ID="checkbox1" runat="server" />

  </ItemTemplate>

  </asp:TemplateField>

  </Columns>

  </asp:GridView>

  第二种:利用服务器端控件实现

  

复制代码 代码如下:

  protected void 全选_CheckedChanged(object sender, EventArgs e)

  {

  if (全选.Checked == true)

  {

  for (int i = 0; i < GridView1.Rows.Count; i++)

  {

  CheckBox ck = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("checkbox1") as CheckBox;

  if (ck!=null)

  {

  ck.Checked = true;

  }

  }

  }

  else

  {

  for (int i = 0; i < GridView1.Rows.Count; i++)

  {

  CheckBox ck = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("checkbox1") as CheckBox;

  if (ck != null)

  {

  ck.Checked = false;

  }

  }

  }

  }