C#.net问题 如何用Repeater控件实现批量册除

401377 2007-09-15 12:17:48
C#.net问题 如何用Repeater控件实现批量册除
比如一个表
QA_id Q A
1 问1 答1
2 问2 答2
3 问3 答3
我用Repeater列出它们的现在要批量删除他们
我要如何写程序,谢谢
...全文
342 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpp2017 2007-09-15
  • 打赏
  • 举报
回复
加个checkbox 选中得到id 然后sql where id in(1,2,3)
seulty 2007-09-15
  • 打赏
  • 举报
回复
再增加个checkbox 不就行了么
lslcyt 2007-09-15
  • 打赏
  • 举报
回复
实验证明你的代码是对的,不知道为什么取不到正确的checked值?前台的代码贴出来看看,我用的是<asp:CheckBox Runat="server" ID="cbxSel"></asp:CheckBox>这样的。
其实这个这样取的话,还得在判断一下该checkbox对应的行的值,麻烦得多了,为什么不能用javascript呢?
lslcyt 2007-09-15
  • 打赏
  • 举报
回复
哦你还要处理事件,这个……汗,不好意思,想不出来了……还是用javascript来遍历checkbox吧……
lslcyt 2007-09-15
  • 打赏
  • 举报
回复
汗,你这样当然不行,一定要在Repeater的事件中取的话,应该这样取行:
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView view = (DataRowView)e.Item.DataItem;
CheckBox CheckBoxSelect= (CheckBox)e.Item.FindControl("delCheckbox");
//这里写你的代码
}
另:这个是放在ItemDataBound事件里的
然后可以用view["绑定到checkboc的列名"]来取得当前行checkbox的值(注意不是那个是否选定,是你绑定的数据库里面的值,比如id之类的)
401377 2007-09-15
  • 打赏
  • 举报
回复
CheckBox CheckBoxSelect;
Literal LiteralID;
string strKeyId = "";

foreach (RepeaterItem RI in Repeater1.Items)
{
CheckBoxSelect = (CheckBox)RI.FindControl("delCheckbox");
Response.Write("结果:" + CheckBoxSelect.Checked + "");

if (CheckBoxSelect.Checked)
{
LiteralID = (Literal)RI.FindControl("delQA_ID");
strKeyId += LiteralID.Text + ",";
}
}

Response.Write(strKeyId);

结果:False结果:False结果:False结果:False结果:False
我明明选了几个,郁闷,各位帮我想想啊,郁闷中
401377 2007-09-15
  • 打赏
  • 举报
回复
郁闷了,试了N次都没有用,有谁有成功的?非js与DataGrid
altex 2007-09-15
  • 打赏
  • 举报
回复
int k = -1;
bool flag = false;
CheckBox temp;
for(int i=0;i<this.myDataGrid.Items.Count;i++)
{
temp = (CheckBox)this.myDataGrid.Items[i].FindControl("你绑定的checkbox名称");
if(temp.Checked)
{
k=0;
flag = bmDac.Delete(this.myDataGrid.DataKeys[i].ToString());
}
}
if(k==-1)return;
if(flag)
{
base.MsgBox("记录删除成功!","ListBackJTH.aspx");
}
else
{
base.MsgBox("记录删除失败!");
return;
}
这个是DataGrid的后台删除代码,你参考下,Repeater下也应该差不多,
lslcyt 2007-09-15
  • 打赏
  • 举报
回复
取得值后就看你打算怎么做了,可以用url传递参数,也可以用cookies记录值,也可以用<input type="hidden" runat="server">这样的来给后台程序传值~
401377 2007-09-15
  • 打赏
  • 举报
回复
兄弟,你这个还是前台页,我的意思是在批量选取提交后.net如何取得<asp:CheckBox ID="delCheckBox" runat="server" />或<input id="lblCheckbox" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem,"qa_id")%>' enableviewstate="true"/>的值
lslcyt 2007-09-15
  • 打赏
  • 举报
回复
我的方法是用javascript来取,代码:

//检测是否至少选中了一个checkbox
function IsCheckedOne()
{
var ckb = document.getElementsByTagName("input");
for(var i = 0 ; i < ckb.length; i++)
{
if(ckb[i].type == "checkbox")
{
if(ckb[i].checked)
{
return true;
}
else
{
continue;
}
}
}
return false;
}

//获取选中的行的值数组
function GetRowsNum()
{
if(IsCheckedOne())
{
var rowsvalue = new Array();
var ckb = document.getElementsByTagName("input");
for(var i = 0 ; i < ckb.length; i++)
{
if(ckb[i].type == "checkbox")
{
if(ckb[i].checked == true && ckb[i].name!="checkAll")
{
rowsvalue.push(ckb[i].value);
}
else
{
continue;
}
}
}
return rowsvalue;
}
else
{
alert("您还没有选择任何数据。");
return "";
}
}

晕,比较乱,你考到编辑器里看吧~

不知道用repeater的事件能不能取到呢?请高手发表一下
401377 2007-09-15
  • 打赏
  • 举报
回复
我是才学c#.net不知怎么取那个checkbox的值啊,ASP的知道,但是.net我不知道啊,能给个例子么,

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧