我刚学asp.net,请教一下这个复选框如何遍历:
<asp:datagrid id="gridOrders" ....>
  <Columns>
    <asp:TemplateColumn HeaderText="选择">
      <ItemTemplate> <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="CID" HeaderText="编号"></asp:BoundColumn>
  </Columns>
</datagrid>
全选必须遍历才能实现吗?
非常感谢解答!

解决方案 »

  1.   

    给你一个JavaScript脚本function SelectAll(chkVal,idVal,partName1,partName2)
    {
    var thisfrm = document.forms[0];
    var HeaderCheckBox;
    var bAllChecked  = true;
    // 遍历Forms里面所有的元素
    for (var i=0; i<thisfrm.length; i++)
    {
    // 如果事件的触发者是模板头中的CheckBox
    if (idVal.indexOf(partName1) != -1)
    {
    if (thisfrm.elements[i].id.indexOf(partName2) != -1)
    {
    thisfrm.elements[i].checked = chkVal;
    }
    }
    // 取得模板头中的CheckBox
    if (thisfrm.elements[i].id.indexOf(partName1) != -1)
    HeaderCheckBox = thisfrm.elements[i];
    // 除题头以外的所有CheckBox的选中状态集合 if (thisfrm.elements[i].id.indexOf(partName2) != -1)
    bAllChecked = bAllChecked && thisfrm.elements[i].checked;
    }
    HeaderCheckBox.checked = bAllChecked;
    }
      

  2.   

    只要个类似gridOrders.行集.列集.复选框.checked之类的代码就行
      

  3.   

    前台:
    <asp:TemplateColumn HeaderText="选择">
    <ItemTemplate>
    <INPUT id="check" type="checkbox" name="check" value ='<%# DataBinder.Eval(Container.DataItem,"ID") %>'>
    </ItemTemplate>
    后台:string split = Request["check"];
    split结果为一串选中项的ID值 以逗号格开
    </asp:TemplateColumn>
      

  4.   

    感谢robertlvqing(Help You As Help Me)
    那么用asp:CheckBox怎么做?应该有个集合可以遍历吧,我不知道怎么写这个集合
      

  5.   

    <asp:TemplateColumn HeaderText="全选">
    <ItemStyle Width="5%"></ItemStyle>
    <ItemTemplate>
    <asp:CheckBox id="check_id" runat="server"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    ==============================================================================
    private void Checkall_CheckedChanged(object sender, System.EventArgs e)
    {
    System.Web.UI.WebControls.CheckBox chkExport ;
    if(Checkall.Text=="全选")
    {
    foreach(DataGridItem oDataGridItem in dg.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("check_id");
    chkExport.Checked = true;
    }
    Checkall.Checked=true;
    Checkall.Text="放弃";
    }
    else
    {
    foreach(DataGridItem oDataGridItem in dg.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("check_id");
    chkExport.Checked = false;
    }
    Checkall.Checked=false;
    Checkall.Text="全选";
    }
    }
    ===========================================================================
    如果还是不行的话建议你可以去看看小山老师的 blog ,这篇文章对你应该会有帮助的。http://www.cnblogs.com/singlepine/archive/2005/11/01/266538.html
      

  6.   

    foreach(DataGridItem i in DataGrid1.Items )
    {
    CheckBox CheckItem=(CheckBox)i.FindControl("CheckBox1");
    if(CheckItem.Checked )
    {
                                           ...
                                         
    }
    }
      

  7.   

    checkall 为单选checkbox 的id
      

  8.   

    非常感谢hong_liang($红亮$) 
    研究代码中..
      

  9.   

    我要的就是这个。再次感谢各位的解答,特别是hong_liang($红亮$)、xiaokaihuang() 。
    我实践一下回来结贴