我想在管理页面上,单击一 ChecBox 使本页的所有行的 CheckBox 都被选择.即全选.然后再通过控件事件But1_Submit()将所选的每行从数据库中删除.在前台我用的是 DataGrid 部分代码如下:<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBotx runat="server" ID="mb"/>  //如何付给值(如绑定ID)
</ItemTemplate>
</asp:TemplateColumn>如何在后台事件中,得到这些被勾选的CheckBox的值().以便进行批量删除操作.谢谢!!

解决方案 »

  1.   

    看MSDN  WEBCAST 
    http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242216
      

  2.   

    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:CheckBotx runat="server" ID="mb"/>  //如何付给值(如绑定ID)
    <input type=hidden ...//放一个隐藏控件,取值时如CheckBox选中就取这个控件的值
    </ItemTemplate>
    </asp:TemplateColumn>
    //检查是否有checkbox被选中
    <script language="javascript">
    function checkForm()
    {
    var m=0;
    var t=document.getElementsByTagName("input");    //获取页面中类型为input的元素个数

    for(var i=0;i<t.length;i++)
    {
    if (t[i].type == "checkbox" && t[i].name.indexOf("mb") != -1 && t[i].checked == true)
    {
        m++;
    }
    }

    if (m == 0)
    {
    alert("请选择想要处理的项!");
    return false ;
    }
    else
    {
     return confirm('您确定要处理选中的项吗?');  
    }
    }
    </script>下面是后台取选中的值,但是GridView的,你参考一下
    public static string RetrieveCheckValue(GridView GridViewMain, string RowCheckBoxName, string RowHiddenInputName)
    {
    string a = ""; foreach (GridViewRow GridViewMainItem in GridViewMain.Rows)
    {
    HtmlInputCheckBox chk = (HtmlInputCheckBox)(GridViewMainItem.FindControl(RowCheckBoxName));//取得CheckBox控件
    HtmlInputHidden hiInput = (HtmlInputHidden)(GridViewMainItem.FindControl(RowHiddenInputName));//取得隐藏的值
    if (chk.Checked == true)
    {
    a += "," + hiInput.Value;//将控件的值拼成字符串
    }
    } if (a != "")
    {
    a = a.Substring(1, a.Length - 1);
    }
    return a;
    }
      

  3.   

    function CheckAll(form)
      {
      for (var i=0;i<form.elements.length;i++)
        {
        var e = form.elements[i];
        if (e.name != 'chkall')
           e.checked = form.chkall.checked;
        }
    }<asp:HyperLink id=Hyperlink3 runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "P_ID") %>' Visible="False"></asp:HyperLink><asp:CheckBox id="selected" runat="server"></asp:CheckBox>
    <input type="checkbox" name="chkall" value="on" onclick="CheckAll(this.form)" title='選中/取消 所有'>
    <asp:Button id="Button1" runat="server" Text="發送" Height="24px">
    private void Button1_Click(object sender, System.EventArgs e)
    {
    for (int i=0;i<MyList.Items.Count;i++ )

    if (((CheckBox)MyList.Items[i].FindControl("selected")).Checked==true)
    {
                       string s0=((System.Web.UI.WebControls.HyperLink)MyList.Items[i].FindControl("Hyperlink3")).Text;
    .
    .
    .
    }
    }
    }
      

  4.   

    全选,页面上有个独立的checkbox,他一选中,其他都选中
      Private Sub ckb_all_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckb_all.CheckedChanged
            Dim oDataGridItem As DataGridItem
            Dim chkExport As System.Web.UI.WebControls.CheckBox        For Each oDataGridItem In Me.dg_main.Items
                chkExport = oDataGridItem.FindControl("cbk")
                chkExport.Checked = Me.ckb_all.Checked
            Next
        End Sub
    删除选中的
     Private Sub btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_del.Click
            Dim oDataGridItem As DataGridItem
            Dim chkExport As System.Web.UI.WebControls.CheckBox
            For Each oDataGridItem In Me.dg_main.Items
                chkExport = oDataGridItem.FindControl("cbk")
                If chkExport.Checked Then
                    删除操作
                End If
            Next    End Sub
    VB版
      

  5.   

    每一行启用一个DataKey标识字段如Id,依次取得每一行的CheckBox是不选中,如选中则读取Id值并执行删除操作!
      

  6.   

    //==================删除事件2222222==============
    void DeleteB(Object O,EventArgs E)
    {
    string delstr=""; //====删除字符窜====
    foreach(DataListItem item in DataList1.Items)
    {
       CheckBox cb=(CheckBox)item.FindControl("chk");
       if(cb.Checked)
       {
    delstr=delstr+","+cb.Text;
                 }
             }
    }