我想写个方法,实现这个全选删除功能
没个表都会生成一个列表,都会有全选删除
  public void Getdelcheck(string checkname)
        {
            string delcheckId = Request.Form[checkname];
            string[] delcheck = delcheckId.Split(',');            foreach (var item in delcheck)
            {
                //这里如何实现全选删除,应该是传一个类?
                //每个类对应一个删除方法,但是这里应该怎么实现
            }
        }

解决方案 »

  1.   

    这个我知道,我想要实现一个通用的删除方法,所有的全选删除,都用这个一个方法,就可以实现,传一个单选框的name,在传一个类,来实现删除,不知道怎么怎么写,大侠帮助啊
      

  2.   

    不如返回要删除的ID列表PS:如果是B/S 建议你直接在前台用JS实现全选功能
      

  3.   

    string delcheckId = Request.Form[checkname];
    string[] delcheck = delcheckId.Split(',');delcheck 这个就是返回删除ID的列表
    这个也是在前台用的jq实现全选,全选的ID已经放在了 delcheck 数组里
    但是不知道 如何写个通用的方法
      

  4.   


    我用的是linq to entity 大侠给个代码提示下
      

  5.   


    晕,引用错了,抱歉 我用的是linq to entity 大侠给个代码提示下
      

  6.   

     User user = db.Users.Where(u => u.UserId == userId).FirstOrDefault();             
                   
                        db.DeleteObject(user);
                        db.SaveChanges();
      

  7.   

    前台  CheckBox 
    <td height="25" valign="middle">
                        <asp:CheckBox ID="chdels" runat="server" Style="border: 0" />
                    </td><td width="59" height="22" align="center">
                                                <asp:CheckBox ID="chall" runat="server" onclick="SelectAll(this)" Style="border: 0" />
                                                全选
                                            </td>
    JS部分
    function SelectAll(box)
    {
       var table=document.getElementById("repeaterManager");//获得datalist的值
       var checks=document.getElementsByTagName("input");
       for(var i=0;i<checks.length;i++)
       {
          if(box.checked==true)
        {   
         if(checks[i].type=="checkbox"){
          checks[i].checked=true;
         }
        }
        else{
         if(checks[i].type=="checkbox")
         {
           checks[i].checked=false;
         }
        }
       }
    }
        //批量删除
        protected void btndel_Click(object sender, EventArgs e)
        {
            try
            {
                string sqltext = "(";
                //搜索第n行第n列
                for (int i = 0; i < dlShop_order.Items.Count; i++)
                {
                    CheckBox cbx = (CheckBox)dlShop_order.Controls[i].FindControl("chdels");
                    if (cbx != null)
                    {
                        if (cbx.Checked == true)
                        {
                            sqltext = sqltext + Convert.ToInt32(dlShop_order.DataKeys[i]) + ",";
                        }
                    }
                }
                //去掉最后的,号,并加上括号
                sqltext = sqltext.Substring(0, sqltext.Length - 1) + ")";
                int managerid = InfoManager.Instance.DeleteInfoByWhere(" id in " + sqltext);//这是一个拼接删除sql
                if (managerid > 0)
                    ShowShop_order(this.OrderWhere);
            }
            catch (Exception)
            {
                
                throw;
            }
        }
      

  8.   

    可能是我表述有问题,大家还没有理解我的意思        /// <summary>
            /// 删除
            /// </summary>
            /// <param name="id"></param>
            public static void DelKL_Prem_RoleInfo(int id)
            {
                var query = Entities.KL_Prem_RoleInfo.FirstOrDefault(c => c.RoleId == id);
                if (query != null)
                {
                    Entities.DeleteObject(query);
                    Entities.SaveChanges();
                }
            }        /// <summary>
            /// 全选删除
            /// </summary>
            /// <param name="delcheck"></param>
            /// <returns></returns>
            public static bool Delcheck(string delcheck)
            {
                string[] delcheckArray = delcheck.Split(',');
                if (delcheckArray==null)
                {
                    return false;
                }
                foreach (var id in delcheckArray)
                {
                    //主要是这个地方应该怎么写?
                    DelKL_Prem_RoleInfo(Convert.ToInt32(id));
                }            return true;
            }
    这样删除是可以的,但是要每一个 实体表类里面都要写一个Delcheck这样的方法,我想有没有一个通用的方法,来实现全选删除
      

  9.   

    id结果集传到逻辑层
    循环拼接一个这样的delete:
    delete dbo.xxx where id in (x,x,x)
    当然最好是参数绑定
      

  10.   

    linq to entity 好像还真没有,Clear只是删除关系,不删除数据
      

  11.   


    var checkboxid="";
    function checkboxCheck(id){checkboxid="tr"+id; if(document.getElementById(id).checked){
      
      
    $("#"+checkboxid).css("background-color","#F7F7F7"); }else{

    $("#"+checkboxid).css("background-color","White"); }}function AllCheck()
    {
    var a = document.getElementsByName("ckSP");   
    for (var   i=0;   i<a.length;   i++)   
    {   
        a[i].checked=true;
        
         $("#"+"tr"+a[i].id).css("background-color","#F7F7F7");
         
    }
     document.getElementById("selectAll").onclick=NotAllCheck;
    }function NotAllCheck()
    {
    var a = document.getElementsByName("ckSP");   
    for (var   i=0;   i<a.length;   i++)   
    {   
        a[i].checked=false;
         $("#"+"tr"+a[i].id).css("background-color","White"); }
    document.getElementById("selectAll").onclick=AllCheck;}
    function deleteAdvice(id){
     if(confirm("确认删除吗?")){
      window.location="1.aspx?key="+id;
     }
    }
    function deleteAll(){
      var AllGuid="";
    var a = document.getElementsByName("ckSP"); 
    for (var   i=0;   i<a.length;   i++)   
    {   
    if(a[i].checked) 
    {
    var chkID = a[i].id;
    AllGuid += chkID + "|";

    } if(AllGuid != "")
    {
    if(confirm("确认删除吗?"))
    {
    window.location="1.aspx?key="+AllGuid; }
    }

    }
      

  12.   

    1个方法就可以了,怎么删取决你有没有多选而已  /// <summary>
    /// 删除
    /// </summary>
    private void Detele() {
    if (Request.QueryString["key"] != null) { string keyId = Request.QueryString["key"].Trim(); //如果是批量删
    if (keyId.Contains("|")) {
    string[] arry = keyId.Split('|'); for (int i = 0; i < arry.Length - 1; i++) { int id = int.Parse(arry[i]);
    new adviceDAL().Delete(id);

    }
    }
    //单个删
    else {
    new adviceDAL().Delete(int.Parse(keyId));

    }
    Response.Redirect("1.aspx"); }
    }