我做了一个前台用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");
//}
}
}求解
前台显示的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");
//}
}
}求解
你在前台直接用控件。通过visible属性控制是否显示。
<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;
}
<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);
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
<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);
}
var checkbox = document.getElementsByTagName_r("input");
修正下 var checkbox = document.getElementsByTagName("input");