repeater全选问题

小虫12 2011-05-25 01:20:40
我做了一个前台用repeater显示数据使用全选做删除
前台显示的checkbox 控件需要到后台判断是否有权限删除,如果有页面显示checkbox
后台方法输出
return "<input type='checkbox' name='CkChecked' id='CkChecked' runat='server' value='" + wid + "'>";
前台调用

<td>
<%# GetIsclaimStr(DataBinder.Eval(Container.DataItem, "Isclaim").ToString(), DataBinder.Eval(Container.DataItem, "WtEndtime").ToString())%>
</td>

但是我点击删除的时候一直得不到checkbox控件对象

后台代码
protected void Unnamed1_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in this.RptWtList.Items)
{
object cb= null;
cb = item.FindControl("CkChecked");
//if (chkItem == null)
// continue;
//if (chkItem.Checked)
//{
// //被勾选
// Message.ShowMessage("OK");
//}
}
}

求解


...全文
351 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
不是为我 2012-04-01
  • 打赏
  • 举报
回复
顶6楼
Ni_Yang 2011-05-25
  • 打赏
  • 举报
回复
看帖回复是种美德。。回帖得分才是王道。
moduofanchen 2011-05-25
  • 打赏
  • 举报
回复
蛋疼的结帖率
蝶恋花雨 2011-05-25
  • 打赏
  • 举报
回复
已经测试6楼的好用
var checkbox = document.getElementsByTagName_r("input");
修正下 var checkbox = document.getElementsByTagName("input");
caiyang910423 2011-05-25
  • 打赏
  • 举报
回复
我想说的上面的都说了,顶一下
蝶恋花雨 2011-05-25
  • 打赏
  • 举报
回复
 Repeater 里面
<input type='checkbox' id='ChkSelect' class='nogrid' runat="server" value='<%#eval_r("ItemID")%>'/>
Repeater 外面
<input id="Checkbox1" type="checkbox" onclick='selectAll()' />
<asp:Button ID="Button1" runat="server" Text="Delete" OnClick="Button1_Click" />


<script language="javascript" type="text/javascript" >
///选中所有的CheckBox
function selectAll()
{
// 获得用户页面中的所有的 输入功能的控件getElementById("ChkSelect").
var checkbox = document.getElementsByTagName_r("input");
if(checkbox[0].checked == true)
{
for (var i=0; i<checkbox.length; i++)
checkbox[i].checked = false;
}
else
{
for (var i=0; i<checkbox.length; i++)
checkbox[i].checked = true;
}
}
</script>

protected void Button1_Click(object sender, EventArgs e)
{
string s = "";
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
//客户端
HtmlInputCheckBox chb = (HtmlInputCheckBox)this.Repeater1.Items[i].FindControl("ChkSelect");
//CheckBox chb = (CheckBox)this.Repeater1.Items[i].FindControl("CheckBox2"); //服务器端
if (chb.Checked == true)
{
s = s + chb.Value;//chb.Text //服务器端
}
}
Response.Write(s);
}
蝶恋花雨 2011-05-25
  • 打赏
  • 举报
回复
01.一、HTML代码:   
02.
03.<input name="CheckAll" type="checkbox" value="" onclick="javascript:FormSelectAll('form1','CheckBox',this);" /> //用于选择是否全选的复选框,用javascript函数“FormSelectAll('form1','CheckBox',this);  ”实现全选效果,具体参数下文在详细解释
04.
05.<form id="form1" runat="server">
06.  <asp:Repeater ID="RptList" runat="server" >
07.    <ItemTemplate>
08.      <input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "F_JobID")%>' /> //使用Repeater 控件绑定checkbox控件,用于选择单项内容
09.    </ItemTemplate>
10.  </asp:Repeater>
11.</form>
12.
13.二、Javascript实现全选效果:
14.
15.function FormSelectAll(formID,EleName,e) //formID:目标复选框组所在的form表单的ID属性;Elename:目标复选框组共同的Name属性;e:用于标识是否全选的复选框自身,用户判断是“全选”还是“全不选”
16.{
17. var Elements = document.getElementById(formID).elements; //获取目标复选框组所在的Form表单
18. for (var i = 0; i < Elements.length;i++)
19. {
20. if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0) //根据对象类型和对象的name属性判断是否为目标复选框
21. {
22. Elements[i].checked = e.checked; //根据用于控制的复选框的选中情况判断是否选中目标复选框
23. }
24. }
25.}
26.
27.三、服务器端执行代码:
28.
29.for (int i = 0; i < this.RptList.Items.Count; i++)  //根据Repeater 控件的情况执行循环判断目标复选框是否被选中
30.{
31.  HtmlInputCheckBox CB = (HtmlInputCheckBox)this.RptList.Items[i].FindControl("CheckBox"); //获取一个目标复选框情况
32.  if (CB.Checked == true) //判断该复选框是否被选中
33.   {
34.    。。。。。 //程序处理代码
35.  }
36.}
http://blog.csdn.net/lsy51213/archive/2010/04/08/5463205.aspx
jeje 2011-05-25
  • 打赏
  • 举报
回复
前台

<asp:Repeater ID="repShopId" runat="server">
<ItemTemplate>
<tr>
<td>
<input name="chkID" type="checkbox" value='<%# Eval("Id") %>' />
</td>
</tr></asp:Repeater>


后台

string ids= HttpContext.Current.Request.Form["chkID"].ToString();
ids是一个用","分隔的字符串
删除的SQL可以直接delete 表名 where id in(ids);

kh064788 2011-05-25
  • 打赏
  • 举报
回复
我帮你顶顶
暖枫无敌 2011-05-25
  • 打赏
  • 举报
回复
你前台:

<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<tr>
<td>
<input id='<%#Eval("ID")%>' type="checkbox" value='<%#Eval("ID")%>' runat="server" Visible='<%#IsVisible(<%#Eval("ID"%>)%>'/>
</td>
</tr>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:Repeater>

后台根据写一个IsVisible方法,返回一个bool值就行了
public bool IsVisible(string ID)
{
bool flag = false;
//你的权限判断,然后返回 bool值即可,控制前面的checkbox是否显示
return flag;
}


laowang134 2011-05-25
  • 打赏
  • 举报
回复
控件是需要注册的。
你在前台直接用控件。通过visible属性控制是否显示。

62,046

社区成员

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

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

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

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