asp.net repeater 批量删除如何获取checkbox的值
展开全部
我写过的一个,看对你有没有帮助
前台:
<asp:CheckBox ID="QCbClient" runat="server" Text="全选" OnCheckedChanged="QCbClient_CheckedChanged"AutoPostBack="true" />
下面这个Label 放在Repeater中,为放存每一个ID,为隐藏的!隐藏域也可以!
<asp:Label ID="Lab" runat="server" Text='<%#Eval("主键ID")%>' Visible="false">
</asp:Label>
后台
//全部选中的
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了
前台:
<asp:CheckBox ID="QCbClient" runat="server" Text="全选" OnCheckedChanged="QCbClient_CheckedChanged"AutoPostBack="true" />
下面这个Label 放在Repeater中,为放存每一个ID,为隐藏的!隐藏域也可以!
<asp:Label ID="Lab" runat="server" Text='<%#Eval("主键ID")%>' Visible="false">
</asp:Label>
后台
//全部选中的
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了
展开全部
foreach (RepeaterItem RPItem in this.RepeNews.Items)
{
CheckBox ChB = (CheckBox)RPItem.FindControl("repeater 中循环的checkbox的ID");
if (!ChB.Checked)
{
//处理CheckBox
ChB.Text
}
}
{
CheckBox ChB = (CheckBox)RPItem.FindControl("repeater 中循环的checkbox的ID");
if (!ChB.Checked)
{
//处理CheckBox
ChB.Text
}
}
更多追问追答
追问
我试过了不行呢,都是Null值 啊
追答
repeater中绑定的是ASP:CheckBox
在repeater中绑定的是CheckBox的Text的值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
绑定数据时把该表的ID(主键给绑定进去) 如
<asp:CheckBox ID="ChkSelect" runat="server" Font-Size="12px" / > <asp:Label ID="Label3" runat="server" Text='<%#Eval("主键ID")%>' visible="false"></asp:Label>
后台这么写
for (int i = 0; i <DataList1.Items.Count; 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的写法就可以了
<asp:CheckBox ID="ChkSelect" runat="server" Font-Size="12px" / > <asp:Label ID="Label3" runat="server" Text='<%#Eval("主键ID")%>' visible="false"></asp:Label>
后台这么写
for (int i = 0; i <DataList1.Items.Count; 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的写法就可以了
追问
查询的所有的checkbox 的checked 都为null ,可是明明就有选择啊,为什么啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的肯定不行。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询