新手提问

jy03170490 2006-04-25 10:03:48
我用datagrid帮定SQLSERVER中一张表的某些字段
我又在datagrid的尾部加上checkbox
要怎样做才能选中几个checkbox点删除
sql中就会有选中几个checkbox的信息删除
就像邮箱里删邮件一样
...全文
83 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yecong 2006-04-25
楼上正解,遍历DataGrid的Item,用FindControl找到CheckBox,判断它是不是选中了,选中就删。
但FindControl可能返回null,要先检查一下
  • 打赏
  • 举报
回复
yueshou 2006-04-25
呵呵 ,我刚做过一个类似问题,代码供你参考!~

前台:将datagrid控件的DataKeyField属性附一字段,我这里是ID字段
DataKeyField="ID"

后台代码:
Dim con As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;data source=" & Server.MapPath("db2.mdb"))
Dim cmd As New OleDbCommand
cmd.Connection = con
con.Open()

Dim objItem As DataGridItem
Dim objcheck As HtmlInputCheckBox
For Each objItem In DataGrid1.Items
objcheck = objItem.FindControl("check2")
If objcheck.Checked = True Then
cmd.CommandText = "delete from 表1 where ID=" & DataGrid1.DataKeys(objItem.ItemIndex)
cmd.ExecuteNonQuery()
End If
Next
con.Close()
  • 打赏
  • 举报
回复
fphuang 2006-04-25
http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
  • 打赏
  • 举报
回复
jy03170490 2006-04-25
谁能告诉我
谢谢了
  • 打赏
  • 举报
回复
jimu8130 2006-04-25
lovecherry的blog lovecherry.cnblogs.com中有个datagrid系列文章讲到了lz的问题,你看看
  • 打赏
  • 举报
回复
kingdhy 2006-04-25
如果你的表中有关键字段,很好解决的!

比如说编号,把编号的列隐藏,不会影响取值的。

CheckBox chk=(CheckBox)this.DataGrid1.FindControls("chked")//checked是你模板中的CheckBox控件的ID
foreach(DataGridItem dm in this.DataGrid1.Items)
{
if(dm.checked)
{
cmd.ExcuteQuerstring("delete from table where BianHao='")+dm.cells[1].Text;
}

}
其中的cells[1]是指绑定编号到DataGrid中的第二列,根据需要可以隐藏或显示它,不管显示或隐藏不影响取值。
附:代码不全,主要是说明方法。
  • 打赏
  • 举报
回复
pccc1984 2006-04-25
全选,反选的JS代码
<script language="javascript">
function ChkSelect(tag)
{
var frms=document.forms[0];
for(var i=0;i<frms.length;i++)
{
var chkType=frms[i].type;
if(chkType=="checkbox")
{
if(tag=='all')
{
frms[i].checked=true;
}
else
{
if(frms[i].checked)
{
frms[i].checked=false;
}
else
{
frms[i].checked=true;
}
}
}
}
}

</script>

<a href="javascript:;" onclick="javascript:ChkSelect('all');" class="blackB12font">全选</a>  
<a href="javascript:;" onclick="javascript:ChkSelect('Reverse');" class="blackB12font">
反选</a>

cs代码
string articleID="";
foreach(System.Web.UI.WebControls.DataGridItem dg in this.dgArticleList.Items)
{
CheckBox chk=(CheckBox)(dg.FindControl("chk"));
if(chk.Checked)
{
articleID+=dg.Cells[1].Text+",";
}
}
int delResult=0;
if(articleID!="")//判断用户是否至少选择了一条记录
{
delResult=aa.BatchDelArticle(articleID.Substring(0,articleID.Length-1));
if(delResult==1)//判断是否执行成功
{
Response.Write("<script>alert('删除成功!');window.location='"+Request.Url.ToString()+"';</script");
}
else
{
Response.Write("<script>alert('删除失败');</script>");
}
}
else
{
Response.Write("<script>alert('至少得选择一条记录');</script>");
}
  • 打赏
  • 举报
回复
活靶子哥哥 2006-04-25
那要看你如何写sql语句了
delete from 表where id in ( 选择的id)
  • 打赏
  • 举报
回复
jy03170490 2006-04-25
但是像楼上这样的我也做了
就不行
这只能一次删一条不能删2条以上的
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
帖子事件
创建了帖子
2006-04-25 10:03
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。