VB.Net我不会,下面的是C#的:
If(selectall.Checked = true)
{
   for(int i=0;i<Grid1.Items.Count;i++)
   {
    CheckBox chk = (CheckBox)Grid1.Items[i].FindControl("chk1");
    chk.Checked == true;
    //其它操作
   }
}

解决方案 »

  1. private void bt_SelectAll_Click(object sender, System.EventArgs e)
    {
    foreach(DataGridItem dgi in DataGrid1.Items)
    {
    CheckBox cb=(CheckBox)(dgi.Cells[0].Controls[1]);
    cb.Checked=true;
    }
    }
      

  2. 还有一种方法就是通过javascript也可以实现全选不要通过服务端取。。
      

  3. If selectall.Checked = True Then
      Dim i As Integer
      For i = 0 To Grid1.Items.Count - 1
        Dim chk As CheckBox
        chk = CType(Grid1.Items(i).FindControl("chk1"), CheckBox)
        chk.Checked = True
      Next
    End If
      

  4. list.asp<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" BorderColor="Black" PagerStyle-HorizontalAlign="right" HeaderStyle-BackColor="#aaaadd" OnPageIndexChanged="Changepage" cellpadding="2" AutoGenerateColumns="False">
    <AlternatingItemStyle BackColor="#CCCCCC"></AlternatingItemStyle>
    <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
    <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
    <Columns>
    <asp:TemplateColumn headertext="选中">
    <ItemTemplate>
    <asp:CheckBox id="chb1" Runat="server"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn headertext="紧急" DataField="urgency"></asp:BoundColumn>
    <asp:BoundColumn HeaderText="新邮件" DataField="isnew"></asp:BoundColumn>
    <asp:BoundColumn DataField="fromname" HeaderText="发件人"></asp:BoundColumn>
    <asp:HyperLinkColumn datatextfield="title" HeaderText="主题" DataNavigateUrlField="recebox" DataNavigateUrlFormatString="show_email.aspx?emailid={0}"></asp:HyperLinkColumn>
    <asp:BoundColumn DataField="addtime" HeaderText="发送时间"></asp:BoundColumn>
    </Columns>
    </asp:datagrid><asp:CheckBox id="selectall" runat="server" Text="全部选中"></asp:CheckBox>
    list.asp.vb Private Sub selectall_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles selectall.CheckedChanged
            Dim i As Integer
            If selectall.Checked = True Then
                For i = 0 To DataGrid1.Items.Count
                    Dim chb As CheckBox = DataGrid1.Items(i).FindControl("chb1")
                    chb.Checked = True
                Next
            Else
                For i = 0 To DataGrid1.Items.Count
                    Dim chb As CheckBox = DataGrid1.Items(i).FindControl("chb1")
                    chb.Checked = False
                Next
            End If
        End Sub
      

  5. use javascript:<script language=javascript>
    function selectAll()
    {
    var coll = document.all.tags("input");
    if (coll!=null)
    var i=0;
    for (var j=0;j<coll.length;j++)
    {
    if(coll[j].type=="checkbox")
    {
    if(coll[j].name.substr(0,8)=="DataList")
    {
    if(coll[j].checked==true)
    {
    coll[j].checked=false
    document.all.selectall.innerText="全部选定"
    }
    else
    {
    coll[j].checked=true
    document.all.selectall.innerText="取消选择"
    }
    }
    }
    }
    }
    </script>
      

类似问题 »