在datagrid中加入一列checkbox列,我只是选中其中几行,怎么判断被选中了呢?我看网上只有全选活全不选的,谢谢了

解决方案 »

  1.   

    #region 删除选定的一个或多个记录.
    /// <summary>
    /// 删除选定的一个或多个记录.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnDel_Click(object sender, System.EventArgs e)
    {
    CheckBox cbx;
    string strSql="";
    foreach(DataGridItem item in DgNews.Items)
    {
    cbx=(CheckBox)item.FindControl("cbxNews");
    if (cbx.Checked==true)
    {
    strSql+=DgNews.DataKeys[item.ItemIndex].ToString()+",";
    }
    }
    if(strSql.Length>0)
    {
    strSql=strSql.Substring(0,strSql.Length-1);
    }
    if (strSql.Length>0)//若选择了记录
    {
    strSql="delete from news where news_id in ("+strSql+")";
    //执行删除操作
    connE.RunSql(strSql);
    this.createdatasource(DgNews.CurrentPageIndex+1);
    }
    }
    #endregion
      

  2.   

    <asp:TemplateColumn>
    <ItemTemplate>

    <asp:CheckBox ID="cbxNews" runat="server" AutoPostBack="False"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  3.   

    private string GetSelectedItemID(string controlID)
    {
    string selectedID;
    selectedID = "";
    //遍历DataGrid获得checked的ID
    foreach (DataGridItem item in dbStaffList.Items)
    {
    if(((CheckBox)item.FindControl(controlID)).Checked==true )
    selectedID += dbStaffList.DataKeys[item.ItemIndex] + ",";
    }
    if(selectedID.Length>0)
    selectedID=selectedID.Substring(0,selectedID.Length-1);
    return selectedID;
    }
      

  4.   

    string selectedstring = "";
    foreach(DataGridItem dgi in dgUserInfo.Items)
    {
    for(int i=0;i<dgi.Cells[0].Controls.Count;i++)
    {
    if(dgi.Cells[0].Controls[i].GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
    {
    if(((CheckBox)dgi.Cells[0].Controls[i]).Checked==true)
    {
    selectedstring += dgUserInfo.DataKeys[dgi.ItemIndex].ToString() + ",";
    }
    }
    }
    }
      

  5.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459为DataGrid添加CheckBox控件 
    作者:孟宪会 出自:【孟宪会之精彩世界】
      

  6.   

    private void IsChecked()
            {
                string jsScript = "<script language=JavaScript>  \n"
                    + "<!-- \n"
                    + "function IsChecked (frm) { \n"
                    + " var chkNum=0;\n"
                    + " // loop through all elements \n"
                    + " for (i=0; i<frm.length; i++) {\n \n"
                    + " // Look for our checkboxes only \n"
                    + " if (frm.elements[i].name.indexOf ('chkChoose') !=-1) { \n"
                    + " // 选中的记录 \n"
                    + " if(frm.elements[i].checked) { \n"
                    + "  chkNum = chkNum +1;\n"
                    + " } \n"
                    + " } \n"
                    + " } \n"
                    + " if(chkNum == 0){ \n"
                    + " alert('请选择资产扩展属性!');\n"
                    + " return false;}\n"
                    + "} \n \n \n"
                    + "//-->  \n"
                    + "</script>";
                if(!IsClientScriptBlockRegistered("clientScript"))
                {
                    // 测试该ID的脚本是否已经被注册,若还没被注册则将之注册
                    Page.RegisterClientScriptBlock("clientScript",jsScript);
                }
                // ---------修改记录结束----------
            }
      

  7.   

    adandelion(被封杀) 的方法就可以!
      

  8.   

    给个更好的方法——————————<script language="javascript"> function getChkLen()
    {
    var chkDel = document.Form1.chkDel;
    var len = 0;
    for(var i=0;i<chkDel.length;i++)
    {
    if (chkDel[i].checked == true)
    {
    len ++;
    }
    }
    return len;
    }
    function DelNews(id)
    {
    if (getChkLen() == 0) return;
    document.all.eAction.value = "delete";
    /*alert(document.all.Form1.chkDel[0].value);*/
    if (confirm("你真的要删除已选中的新闻吗?"))
    {
    document.Form1.submit();
    }
    }
    </script>———————————— /// <summary>
    /// 方法:删除选定新闻
    /// </summary>
    /// <param name="sTable"></param>
    private void Del_News(string sTable)
    {
    if (Request.Form.Get("eAction") != null && Request.Form["eAction"] == "delete")
    {
    if (Request.Form["chkDel"].Length > 0)
    {
    try
    {
    string sCondit = this.NewsID + " IN (" + Request.Form.Get("chkDel") + ")";
    EveDb.DbExec.Delete(sTable, sCondit);
    }
    catch
    {
    Inc.MessageBox("未能删除指定内容!", "");
    }
    finally
    {
    Response.Redirect(Request.RawUrl,true);
    }
    }
    }
    }