读书人

全选删除 通用方法有关问题

发布时间: 2011-12-13 21:22:18 作者: rapoo

全选删除 通用方法问题
我想写个方法,实现这个全选删除功能
没个表都会生成一个列表,都会有全选删除

C# code
  public void Getdelcheck(string checkname)        {            string delcheckId = Request.Form[checkname];            string[] delcheck = delcheckId.Split(',');            foreach (var item in delcheck)            {                //这里如何实现全选删除,应该是传一个类?                //每个类对应一个删除方法,但是这里应该怎么实现            }        }


[解决办法]
全选可以服务器端选择;也可以用JS客户端选择全部,然后发删除命令回去删除.

[解决办法]
不如返回要删除的ID列表

PS:如果是B/S 建议你直接在前台用JS实现全选功能
[解决办法]
这个方法必须有两个参数,表名和主健名

如果你要传类,那么这些类必须有统一的接口或基类。
[解决办法]
User user = db.Users.Where(u => u.UserId == userId).FirstOrDefault();

db.DeleteObject(user);
db.SaveChanges();
[解决办法]
前台 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;
}
}
[解决办法]
id结果集传到逻辑层
循环拼接一个这样的delete:
delete dbo.xxx where id in (x,x,x)
当然最好是参数绑定
[解决办法]
探讨



可能是我表述有问题,大家还没有理解我的意思
C# code

/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
public static void DelKL_Prem_RoleInfo(int id)
{
……


[解决办法]
JScript code
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;            }    }    }
[解决办法]
1个方法就可以了,怎么删取决你有没有多选而已
C# code
    /// <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");        }    } 

读书人网 >asp.net

热点推荐