<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="listTable">
<tr class="listTitleStyle">
<td width="12%" align="center">登陆帐号</td>
<td width="11%" align="center">用户名称</td>
<td width="18%" align="center">开始日期</td>
<td width="18%" align="center">到期日期</td>
<td width="17%" align="center">开户时间</td>
<td width="10%" align="center">帐号状态</td>
<td width="15%" align="center"> 属性<input type="checkbox" id="ckDete" name="define_checkbox2" value="checkbox" onclick="javascript: return selectAll(this.form,this.checked)"/></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<%#((DataRowView)Container.DataItem)["Colum"]%>
</ItemTemplate>
<FooterTemplate>
<tr class="listBodyStyle">
<td height="23" colspan="7" background="Image/listBottomBg.jpg"> </td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
后台绑定
private void RepeaterUserListDataBind()
{
DataTable dt = UserInformManager.GetList(SearchTerms).Tables[0];
if (dt != null)
{
dt.Columns.Add("Colum", typeof(string));
dt.Columns.Add("Operate", typeof(string));
foreach (DataRow dr in dt.Rows)
{
string str = null;
dr["Operate"] = "<a href=\"AddUser.aspx?action=modify&softType=" + dr["SoftType"] + "&ID=" + dr["UID"] + "\"><img src=\"Image/update.jpg\" width=\"34\" height=\"21\" /></a><a href=\"UserList.aspx?action=Delete&ID=" + dr["UID"] + "\" onclick=\"return confirm('确定删除吗? 数据一旦删除将无法恢复!!');\"><img src=\"Image/delete.jpg\" width=\"34\" height=\"21\" /></a><input type=\"checkbox\" name=\"define_checkbox\" value=\"" + dr["UID"] + "\" />";
str += "<tr class=\"listBodyStyle\">";
str += "<td height=\"23\">" + dr["LoginID"] + "</td>";
str += "<td height=\"23\">" + dr["UName"] + "</td>";
str += "<td height=\"23\" align=\"center\">" + dr["SDate"] + "</td>";
str += "<td height=\"23\" align=\"center\">" + dr["EDate"] + "</td>";
str += "<td height=\"23\" align=\"center\">" + dr["AccDate"].ToString() + "</td>";
str += "<td height=\"23\" align=\"center\">" + dr["State"].ToString() + "</td>";
str += "<td height=\"23\" align=\"center\">" + dr["Operate"].ToString() + "</td></tr>";
dr["Colum"] = str;
}
this.AspNetPager1.RecordCount = dt.Rows.Count;
PagedDataSource pds = new PagedDataSource();
pds.AllowPaging = true;
pds.PageSize = this.AspNetPager1.PageSize;
pds.CurrentPageIndex = this.AspNetPager1.CurrentPageIndex - 1;
pds.DataSource = dt.DefaultView;
this.Repeater1.DataSource = pds;
this.Repeater1.DataBind();
}
}
我现在想遍历删除所有选中的数据项
怎么弄
怎么去获取每行的checkbox
21 个解决方案
#1
function selectAll(obj){
$(obj).parents("tr").siblings().each(function(){
$(this).find(":checkbox").attr("checked",$(obj).attr("checked"))
})
}
$(obj).parents("tr").siblings().each(function(){
$(this).find(":checkbox").attr("checked",$(obj).attr("checked"))
})
}
#2
<asp:CheckBox ID="CheckBox1" onclick="selectAll(this)" runat="server" />选择
#3
foreach (RepeaterItem RPItem in this.Repeater1.Items)
{
CheckBox ChB = (CheckBox)RPItem.FindControl("CheckBoxID");
if (!ChB.Checked)
{
ChB.Checked = true;
}
else
{
ChB.Checked = false;
}
}
#4
如果是全选,就用前台脚本,如果是取值,就用后台遍历
#5
这个就可以,我以前用过
#6
靠谱!
#7
js 脚本 来实现
#8
哥哥 你麻烦看仔细点 这种方式遍历我试过了 是不行的 你关键看仔细点 这个Repeater1的绑定方式
我试过好多方式 都不能在后台遍历获取每一行的checkbox
#9
我恳请进来回帖的兄弟姐们们 大家仔细看清楚题 看清楚要做什么 别随便会就回答。。。。
#10
哦,是动态的,呵呵 不好意思。
那就用1楼的吧,就是那个思路,find和抓取Repeater的checkbox。
那就用1楼的吧,就是那个思路,find和抓取Repeater的checkbox。
#11
#12
用脚本吧
实用
实用
#13
#14
function IsChecked(inst) {
var num = 0;
var id = [];
var idsum = "";
var items = document.getElementById("xx").getElementsByTagName("input");
for (var i = 0; i < items.length; i++) {
if (items[i].type == 'checkbox') {
if (items[i].checked) {
id[i] = parseInt(items[i].parentNode.title);
idsum += items[i].parentNode.title + ",";
num++;
}
}
}
if (num == 0) {
alert("Bull");
}
else {
alert("Fuck");
}
}
1楼的是Jquery,上面也有cs后台的,我再给你个JS的,Jquery和JS的自己选用哪个。
var num = 0;
var id = [];
var idsum = "";
var items = document.getElementById("xx").getElementsByTagName("input");
for (var i = 0; i < items.length; i++) {
if (items[i].type == 'checkbox') {
if (items[i].checked) {
id[i] = parseInt(items[i].parentNode.title);
idsum += items[i].parentNode.title + ",";
num++;
}
}
}
if (num == 0) {
alert("Bull");
}
else {
alert("Fuck");
}
}
1楼的是Jquery,上面也有cs后台的,我再给你个JS的,Jquery和JS的自己选用哪个。
#15
根据<input type=\"checkbox\"
name=\"define_checkbox\" value=\"" + dr["UID"] + "\" />
先取得选中的UID序列,然后删除
当然用Ajax体验会更好,要写点JS
先取得选中的UID序列,然后删除
string checkeds = Request.Form.Get("define_checkbox");
if(!string.IsNullOrEmpty(checkeds))
//以下假设UID在数据库中是INT型
//如果UID不是INT,拼SQL前先转换一下
//checkeds = string.Join(",", checkeds.Split(',').Select(s => string.Concat("'", s, "'")).ToArray());
if(dal.Delete(string.Format("delete from users where UID in({0})", checkeds)))
DataBind(); //重新绑定以刷新数据
当然用Ajax体验会更好,要写点JS
#16
14 楼的正解,用Jquery实现,
function DelMany() { //批量删除
var list = "";
var checklist = jQuery("input[type=checkbox][name=define_checkbox2]:checked");
if (checklist.length == 0) {
alert("请选择要删除的数据!");
return;
}
var flag = true;
checklist.each(function(index, dom) {
list += dom.value + ",";
});
if (confirm("确定要删除选中的新闻吗?")) {
list = list.substr(0, list.length - 1);
jQuery.ajax({
type: "POST",
url: "GonggaoList.aspx?callback=2&ids=" + list,
success: function(msg) {
if (msg == "1") {
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove();
alert("删除成功!");
}
else {
alert("删除失败!");
}
},
error: function(xhr) { alert("删除失败!"); }
});
}
}
将所有选中的checkbox 对应的数据ID 拼接成字符串,传到后台进行处理。就是在后台用string.split(','),对所有ID遍历,从数据库中删除。删除成功,返回1或true,反之返回0或false,在前台接收,若为1,则通过这句:jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 移除掉所有选中行。这样可以实现无刷新批量删除。当然,上面代码中的一些HTML控件值(如 name)你得自己改一下,还有
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 这句中的子父级关系得弄清楚。在你的页面里可能会少一个 .parent(),或多一个。
function DelMany() { //批量删除
var list = "";
var checklist = jQuery("input[type=checkbox][name=define_checkbox2]:checked");
if (checklist.length == 0) {
alert("请选择要删除的数据!");
return;
}
var flag = true;
checklist.each(function(index, dom) {
list += dom.value + ",";
});
if (confirm("确定要删除选中的新闻吗?")) {
list = list.substr(0, list.length - 1);
jQuery.ajax({
type: "POST",
url: "GonggaoList.aspx?callback=2&ids=" + list,
success: function(msg) {
if (msg == "1") {
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove();
alert("删除成功!");
}
else {
alert("删除失败!");
}
},
error: function(xhr) { alert("删除失败!"); }
});
}
}
将所有选中的checkbox 对应的数据ID 拼接成字符串,传到后台进行处理。就是在后台用string.split(','),对所有ID遍历,从数据库中删除。删除成功,返回1或true,反之返回0或false,在前台接收,若为1,则通过这句:jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 移除掉所有选中行。这样可以实现无刷新批量删除。当然,上面代码中的一些HTML控件值(如 name)你得自己改一下,还有
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 这句中的子父级关系得弄清楚。在你的页面里可能会少一个 .parent(),或多一个。
#17
#18
<script type="text/javascript">
function selectAll() {
// 获得用户页面中的所有的 输入功能的控件getElementById("ChkSelect").
var checkbox = document.getElementsByTagName("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>
<HeaderTemplate>
<input id="Checkbox1" type="checkbox" onclick='selectAll()' /></HeaderTemplate>
<ItemTemplate>
<tr>
<td > <asp:CheckBox id='ChkSelect' AutoPostBack="true" runat="server" onclick='selectAll()' Text='<%#Eval("ID")%>' ></td>
</ItemTemplate>
protected void Button1_Click(object sender, EventArgs e)
{
string s = "";
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
//客户端
CheckBox chb = (CheckBox)this.Repeater1.Items[i].FindControl("ChkSelect");
if (chb.Checked == true)
{
s = s + chb.Text;//chb.Text //服务器端
}
}
Response.Write(s);
}
#19
你的把每行的ID提出来,放在每行的一个位置上,这样删除才知道删除什么数据
#20
飘过。。。
#21
function SetCheck(count,cbID,cblID) {
var checkbox = document.getElementById(cbID);
var bValue = 0;
for (var i = 0; i < count; i++) {
var cblItem = document.getElementById(cblID + "_" + i);
if (cblItem.type == "checkbox") {
if (cblItem.checked) {
bValue++;
}
}
}
if (bValue > 0) {
checkbox.checked = true;
}
else {
checkbox.checked = false;
}
}
后台绑定数据时添加onclick事件,调用SetCheck方法设置,此为遍历设置选中状态
var checkbox = document.getElementById(cbID);
var bValue = 0;
for (var i = 0; i < count; i++) {
var cblItem = document.getElementById(cblID + "_" + i);
if (cblItem.type == "checkbox") {
if (cblItem.checked) {
bValue++;
}
}
}
if (bValue > 0) {
checkbox.checked = true;
}
else {
checkbox.checked = false;
}
}
后台绑定数据时添加onclick事件,调用SetCheck方法设置,此为遍历设置选中状态
#1
function selectAll(obj){
$(obj).parents("tr").siblings().each(function(){
$(this).find(":checkbox").attr("checked",$(obj).attr("checked"))
})
}
$(obj).parents("tr").siblings().each(function(){
$(this).find(":checkbox").attr("checked",$(obj).attr("checked"))
})
}
#2
<asp:CheckBox ID="CheckBox1" onclick="selectAll(this)" runat="server" />选择
#3
foreach (RepeaterItem RPItem in this.Repeater1.Items)
{
CheckBox ChB = (CheckBox)RPItem.FindControl("CheckBoxID");
if (!ChB.Checked)
{
ChB.Checked = true;
}
else
{
ChB.Checked = false;
}
}
#4
如果是全选,就用前台脚本,如果是取值,就用后台遍历
#5
这个就可以,我以前用过
#6
靠谱!
#7
js 脚本 来实现
#8
哥哥 你麻烦看仔细点 这种方式遍历我试过了 是不行的 你关键看仔细点 这个Repeater1的绑定方式
我试过好多方式 都不能在后台遍历获取每一行的checkbox
#9
我恳请进来回帖的兄弟姐们们 大家仔细看清楚题 看清楚要做什么 别随便会就回答。。。。
#10
哦,是动态的,呵呵 不好意思。
那就用1楼的吧,就是那个思路,find和抓取Repeater的checkbox。
那就用1楼的吧,就是那个思路,find和抓取Repeater的checkbox。
#11
#12
用脚本吧
实用
实用
#13
#14
function IsChecked(inst) {
var num = 0;
var id = [];
var idsum = "";
var items = document.getElementById("xx").getElementsByTagName("input");
for (var i = 0; i < items.length; i++) {
if (items[i].type == 'checkbox') {
if (items[i].checked) {
id[i] = parseInt(items[i].parentNode.title);
idsum += items[i].parentNode.title + ",";
num++;
}
}
}
if (num == 0) {
alert("Bull");
}
else {
alert("Fuck");
}
}
1楼的是Jquery,上面也有cs后台的,我再给你个JS的,Jquery和JS的自己选用哪个。
var num = 0;
var id = [];
var idsum = "";
var items = document.getElementById("xx").getElementsByTagName("input");
for (var i = 0; i < items.length; i++) {
if (items[i].type == 'checkbox') {
if (items[i].checked) {
id[i] = parseInt(items[i].parentNode.title);
idsum += items[i].parentNode.title + ",";
num++;
}
}
}
if (num == 0) {
alert("Bull");
}
else {
alert("Fuck");
}
}
1楼的是Jquery,上面也有cs后台的,我再给你个JS的,Jquery和JS的自己选用哪个。
#15
根据<input type=\"checkbox\"
name=\"define_checkbox\" value=\"" + dr["UID"] + "\" />
先取得选中的UID序列,然后删除
当然用Ajax体验会更好,要写点JS
先取得选中的UID序列,然后删除
string checkeds = Request.Form.Get("define_checkbox");
if(!string.IsNullOrEmpty(checkeds))
//以下假设UID在数据库中是INT型
//如果UID不是INT,拼SQL前先转换一下
//checkeds = string.Join(",", checkeds.Split(',').Select(s => string.Concat("'", s, "'")).ToArray());
if(dal.Delete(string.Format("delete from users where UID in({0})", checkeds)))
DataBind(); //重新绑定以刷新数据
当然用Ajax体验会更好,要写点JS
#16
14 楼的正解,用Jquery实现,
function DelMany() { //批量删除
var list = "";
var checklist = jQuery("input[type=checkbox][name=define_checkbox2]:checked");
if (checklist.length == 0) {
alert("请选择要删除的数据!");
return;
}
var flag = true;
checklist.each(function(index, dom) {
list += dom.value + ",";
});
if (confirm("确定要删除选中的新闻吗?")) {
list = list.substr(0, list.length - 1);
jQuery.ajax({
type: "POST",
url: "GonggaoList.aspx?callback=2&ids=" + list,
success: function(msg) {
if (msg == "1") {
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove();
alert("删除成功!");
}
else {
alert("删除失败!");
}
},
error: function(xhr) { alert("删除失败!"); }
});
}
}
将所有选中的checkbox 对应的数据ID 拼接成字符串,传到后台进行处理。就是在后台用string.split(','),对所有ID遍历,从数据库中删除。删除成功,返回1或true,反之返回0或false,在前台接收,若为1,则通过这句:jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 移除掉所有选中行。这样可以实现无刷新批量删除。当然,上面代码中的一些HTML控件值(如 name)你得自己改一下,还有
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 这句中的子父级关系得弄清楚。在你的页面里可能会少一个 .parent(),或多一个。
function DelMany() { //批量删除
var list = "";
var checklist = jQuery("input[type=checkbox][name=define_checkbox2]:checked");
if (checklist.length == 0) {
alert("请选择要删除的数据!");
return;
}
var flag = true;
checklist.each(function(index, dom) {
list += dom.value + ",";
});
if (confirm("确定要删除选中的新闻吗?")) {
list = list.substr(0, list.length - 1);
jQuery.ajax({
type: "POST",
url: "GonggaoList.aspx?callback=2&ids=" + list,
success: function(msg) {
if (msg == "1") {
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove();
alert("删除成功!");
}
else {
alert("删除失败!");
}
},
error: function(xhr) { alert("删除失败!"); }
});
}
}
将所有选中的checkbox 对应的数据ID 拼接成字符串,传到后台进行处理。就是在后台用string.split(','),对所有ID遍历,从数据库中删除。删除成功,返回1或true,反之返回0或false,在前台接收,若为1,则通过这句:jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 移除掉所有选中行。这样可以实现无刷新批量删除。当然,上面代码中的一些HTML控件值(如 name)你得自己改一下,还有
jQuery("#tblist").find("input[name='ckbox'][checked=true]").parent().parent().remove(); 这句中的子父级关系得弄清楚。在你的页面里可能会少一个 .parent(),或多一个。
#17
#18
<script type="text/javascript">
function selectAll() {
// 获得用户页面中的所有的 输入功能的控件getElementById("ChkSelect").
var checkbox = document.getElementsByTagName("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>
<HeaderTemplate>
<input id="Checkbox1" type="checkbox" onclick='selectAll()' /></HeaderTemplate>
<ItemTemplate>
<tr>
<td > <asp:CheckBox id='ChkSelect' AutoPostBack="true" runat="server" onclick='selectAll()' Text='<%#Eval("ID")%>' ></td>
</ItemTemplate>
protected void Button1_Click(object sender, EventArgs e)
{
string s = "";
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
//客户端
CheckBox chb = (CheckBox)this.Repeater1.Items[i].FindControl("ChkSelect");
if (chb.Checked == true)
{
s = s + chb.Text;//chb.Text //服务器端
}
}
Response.Write(s);
}
#19
你的把每行的ID提出来,放在每行的一个位置上,这样删除才知道删除什么数据
#20
飘过。。。
#21
function SetCheck(count,cbID,cblID) {
var checkbox = document.getElementById(cbID);
var bValue = 0;
for (var i = 0; i < count; i++) {
var cblItem = document.getElementById(cblID + "_" + i);
if (cblItem.type == "checkbox") {
if (cblItem.checked) {
bValue++;
}
}
}
if (bValue > 0) {
checkbox.checked = true;
}
else {
checkbox.checked = false;
}
}
后台绑定数据时添加onclick事件,调用SetCheck方法设置,此为遍历设置选中状态
var checkbox = document.getElementById(cbID);
var bValue = 0;
for (var i = 0; i < count; i++) {
var cblItem = document.getElementById(cblID + "_" + i);
if (cblItem.type == "checkbox") {
if (cblItem.checked) {
bValue++;
}
}
}
if (bValue > 0) {
checkbox.checked = true;
}
else {
checkbox.checked = false;
}
}
后台绑定数据时添加onclick事件,调用SetCheck方法设置,此为遍历设置选中状态