asp.net repeater 批量删除如何获取checkbox的值

2025-01-01 14:03:31
推荐回答(4个)
回答1:

我写过的一个,看对你有没有帮助
前台:

下面这个Label 放在Repeater中,为放存每一个ID,为隐藏的!隐藏域也可以!
' Visible="false">

后台
//全部选中的
protected void QCbClient_CheckedChanged(object sender, EventArgs e)
{
bool ischeck = ((CheckBox)sender).Checked;
foreach (RepeaterItem item in Repeater1.Items)
{
CheckBox cb = item.FindControl("Repeater中CheckBox的Name") as CheckBox;
cb.Checked = ischeck;
}
}
删除:
for (int i = 0; i < Repeater1.Items.Count; i++)
{
CheckBox cb = Repeater1.Items[i].FindControl("ckIndustryType") as CheckBox;
Label h = (Label)Repeater1.Items[i].FindControl("Lab");
if (cb.Checked == true){
string id= h.Text.ToString();
之后根据ID对每一条数据逐一删除操作
}
}
个人认为验证空或是其他一些简单验证,用验证控件就好,方便,还很使用!
还不用走后台代码!要是复杂的,或是一个控件上要验证很多,就要用js了

回答2:

foreach (RepeaterItem RPItem in this.RepeNews.Items)
{
CheckBox ChB = (CheckBox)RPItem.FindControl("repeater 中循环的checkbox的ID");
if (!ChB.Checked)
{
//处理CheckBox
ChB.Text
}
}

回答3:

绑定数据时把该表的ID(主键给绑定进去) 如
' visible="false">
后台这么写
for (int i = 0; i {
CheckBox chk = (CheckBox)DataList1.Items[i].FindControl("ChkSelect");
if (chk != null && chk.Checked == true)
{
Label L3 = (Label)DataList1.Items[i].FindControl("Label3");
try
{
//删除数据
}
catch
{
//删除发生错误
}
}
}
这里是DataList 你替换成Repeater的写法就可以了

回答4:

楼上的肯定不行。。