在DataGrid中添加一列CheckBox作为选择某一行,如何一次全部选择所有行?谢谢了

解决方案 »

  1.   

    循环找到这个DataGrid中所有行的CheckBox,设为选中久可以了
      

  2.   

    <asp:TemplateColumn HeaderText="选择">
    <HeaderStyle Width="30px"></HeaderStyle>
    <HeaderTemplate>
    <input type="checkbox" id="chkHeader" title="全选" onclick="SelectAll(this)" />全选
    </HeaderTemplate>
    <ItemTemplate>
    <asp:CheckBox id="chkItem" Height="10" Runat="server"></asp:CheckBox>
    </ItemTemplate>
    <FooterStyle Width="30px"></FooterStyle>
    </asp:TemplateColumn>js:
    function SelectAll(box)    
    {
    for (var i=0;i<document.Form1.elements.length;i++)
    {
    var e = document.Form1.elements[i];
    if ( (e.type=='checkbox') )
    {
    var o=e.name.lastIndexOf('chkItem');
    if(o!=-1)
    {
    e.checked = box.checked;
    }
    }
            
    }
    }
      

  3.   

    遍历datagrid所有行,每行都findcontrol。
    然后,checkbox.checked=true;
      

  4.   


    foreach (DataGridItem i in this.grdServer.Items){       CheckBox inChk = (CheckBox)i.FindControl("chkDelServer");           inChk.Checked = chk.Checked;    }
      

  5.   

    Aden(Aden)正解,客户端操作,不需要刷新页面
      

  6.   

    System.Web.UI.WebControls.CheckBox chkExport ;
    if(this.selectAll.Text == "全  选")
    {
    foreach(DataGridItem oDataGridItem in taskGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("checkBoxTask");
    chkExport.Checked = true;
    }
    this.selectAll.Text = "不  选";
    }
    else
    {
    foreach(DataGridItem oDataGridItem in taskGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("checkBoxTask");
    chkExport.Checked = false;
    }
    this.selectAll.Text = "全  选";
    }
      

  7.   

    定义函数selectAllChecBox,然后在全选按钮中调用这个函数
    private void selectAllChecBox()
    {
    System.Web.UI.WebControls.CheckBox chkExport ;
    if(this.selectAll.Text == "全  选")
    {
    foreach(DataGridItem oDataGridItem in taskGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("checkBoxTask");
    chkExport.Checked = true;
    }
    this.selectAll.Text = "不  选";
    }
    else
    {
    foreach(DataGridItem oDataGridItem in taskGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("checkBoxTask");
    chkExport.Checked = false;
    }
    this.selectAll.Text = "全  选";
    }
    }
      

  8.   

    <%@ Page Language="VB" AutoEventWireup="True" Debug="true"%>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %><html>
       <script runat="server">
         dim MyConnection as OleDbConnection      Sub Page_Load(sender As Object, e As EventArgs) 
          MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data5.mdb")         If Not IsPostBack Then 
                BindGrid()
             End If
          End Sub      Sub MyDataGrid_Page(sender as Object, e As DataGridPageChangedEventArgs) 
             MyDataGrid.CurrentPageIndex = e.NewPageIndex
             BindGrid()
          End Sub      Sub BindGrid() 
          Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("select * from [user]", MyConnection)
              Dim DS As DataSet = new DataSet()
              MyCommand.Fill(DS,"user") 
              MyDataGrid.DataSource = DS.Tables("user").DefaultView
              MyDataGrid.DataBind()
          End Sub
    </script>
      <script language="javascript">
           function SelectAll(tempControl)
           {
               //将除头模板中的其它所有的CheckBox取反             var theBox=tempControl;
                 xState=theBox.checked;                elem=theBox.form.elements;
                for(i=0;i<elem.length;i++)
                if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
                 {
                      if(elem[i].checked!=xState)
                            elem[i].click();
                }
      }  
    </script><form runat="server">
        <asp:DataGrid id="MyDataGrid" 
               AllowPaging="True" 
               PageSize="2" 
               OnPageIndexChanged="MyDataGrid_Page" 
               runat="server"
       AutoGenerateColumns="False"
       Width="200">
             <HeaderStyle BackColor="Navy" 
                          ForeColor="White" 
                          Font-Bold="True" />
             <PagerStyle Mode="NumericPages" 
                         HorizontalAlign="Right" />
          <Columns>
       <asp:TemplateColumn>
             <HeaderTemplate>      
                   <asp:CheckBox id="chkHeader" runat="server" AutoPostBack="False" onclick="javascript:SelectAll(this);"></asp:CheckBox>
                 </HeaderTemplate>
             <ItemTemplate>            
                   <asp:CheckBox id="chkItem" runat="server"></asp:CheckBox>
             </ItemTemplate>
       </asp:TemplateColumn>
             <asp:BoundColumn DataField="id" HeaderText="ID"/>
     <asp:TemplateColumn HeaderText="name">
    <ItemTemplate>
            <asp:Label ID="lblname"  Text='<%#(Container.DataItem("name"))%>' Runat=server />
    </ItemTemplate> 
    </asp:TemplateColumn> 
          </Columns>
          </asp:DataGrid>
    </form>