C# Gridview 获得checkbox是否被选中

friend555 2010-06-25 10:18:08
我在做C# web程序,在一个页面加入GridView,GridView每行第一列放入CheckBox复选按扭,我现在想实现选中一个CheckBox就将这个CheckBox对应的列值这个列值用字段planid表示)存入一个数组,我想写一个js来实现这个操作,请问该怎样写,请高手指教
...全文
402 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gauzeapricot122 2010-06-25
  • 打赏
  • 举报
回复
我这里单选多选的都有 还看不懂的话我也不知道该怎么跟你说啦,好好研究研究JS吧
//全选
function CheckAll(cb){

var ctrlAll = document.all;
var ctrlEveryID;
//循环所有文档元素
for(var i = 0;i < ctrlAll.length;i++)
{
ctrlEveryID = ctrlAll[i].id;
//如果控件类型和ID满足要求
if(ctrlAll[i].type == 'checkbox' && ctrlEveryID.length > 6 && ctrlEveryID.substr(ctrlEveryID.length - 6,6) == 'select')
{
//判断控件是否可用
if( ctrlAll[i].disabled == true)
{
continue;
}
else
{
ctrlAll[i].checked = cb.checked;
}
}
}
}
//选择单个复选框
function CheckOneCheckBox(cb){

var ctrlAll = document.all;
var ctrlEveryID;
//循环所有文档元素
for(var i = 0;i < ctrlAll.length;i++)
{
ctrlEveryID = ctrlAll[i].id;
//如果控件类型和ID满足要求
if(ctrlAll[i].type == 'checkbox' )
{
//判断控件是否可用
if( ctrlAll[i].disabled == true)
{
continue;
}
else
{
if (ctrlEveryID==cb.id){
ctrlAll[i].checked=true;
}else
{
ctrlAll[i].checked=false;
}

}
}
}
}
shiyuyao1987 2010-06-25
  • 打赏
  • 举报
回复
12楼方法可行,一次性获取到选中的checkbox的值
shiyuyao1987 2010-06-25
  • 打赏
  • 举报
回复
你在checkbox上加上onclick事件就行了

如果取消选中,是否还得在数组里删除掉
wuyq11 2010-06-25
  • 打赏
  • 举报
回复
var objs=document.getElementsById("<%#GridView1.ClientId%>").getElementsByTagName("input");
var s;
for(var i=0;i< objs.length;i++)
{
if(objs[i].type=="check")
{
if(objs[i].checked){s+=objs[i].value+"'";};
}
}
或隐藏域hiddenfield
maxsquall 2010-06-25
  • 打赏
  • 举报
回复
你这个数组时在js中定义还是后台
friend555 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cecoucele 的回复:]
引用 2 楼 shiyuyao1987 的回复:
用客户端的checkbox
<input id="cbkbSelect" name="cbkbSelect" type="checkbox" class="Radio" value='<%# Eval("planid" %>'/>

后台用Request.Form["cbkbSelect"]获取

前台如果不需要其他逻辑操作,不用JS获……
[/Quote]
我需要将这些值存入数组,调用别的页面时把这些值再传到另一个页面,所以我想用js实现
Lisen_1987 2010-06-25
  • 打赏
  • 举报
回复

function checkAll(obj)
{
var arrAll=$("tblList").getElementsByTagName("INPUT");
if(obj.checked==false)
{
for(var i=0;i<arrAll.length;i++)
{
if(arrAll[i].type=='checkbox')
{
arrAll[i].checked=false;
}
}
}
else
{
for(var i=0;i<arrAll.length;i++)
{
if(arrAll[i].type=='checkbox')
{
arrAll[i].checked=true;
}
}
}
}


思路大概差不多是这样
shiyuyao1987 2010-06-25
  • 打赏
  • 举报
回复
Request.Form["cbkbSelect"]获取到的值是用逗号隔开的字符串
被偷的香蕉 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shiyuyao1987 的回复:]
用客户端的checkbox
<input id="cbkbSelect" name="cbkbSelect" type="checkbox" class="Radio" value='<%# Eval("planid" %>'/>

后台用Request.Form["cbkbSelect"]获取
[/Quote]
前台如果不需要其他逻辑操作,不用JS获取存入数组。直接后台C#获取Request.Form["cbkbSelect"],或者遍历GridView,处理选中的planid。
shiyuyao1987 2010-06-25
  • 打赏
  • 举报
回复
<input id="cbkbSelect" name="cbkbSelect" type="checkbox" class="Radio"
onclick='aa(<%# Eval("planid" %>)'/>

在aa()方法里处理
pengliang1982 2010-06-25
  • 打赏
  • 举报
回复
学习了,顶一下.
friend555 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 foxdave 的回复:]
Checked属性
取每行CheckBox的ID,用JS操作就可以了
存入数组用回调或者ajax
[/Quote]
谢谢回答,能不能给出部分代码,谢谢
friend555 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shiyuyao1987 的回复:]
用客户端的checkbox
<input id="cbkbSelect" name="cbkbSelect" type="checkbox" class="Radio" value='<%# Eval("planid" %>'/>

后台用获取
[/Quote]
谢谢你的回答,我是web页面,在js里面可以用Request.Form["cbkbSelect"]吗
shiyuyao1987 2010-06-25
  • 打赏
  • 举报
回复
用客户端的checkbox
<input id="cbkbSelect" name="cbkbSelect" type="checkbox" class="Radio" value='<%# Eval("planid" %>'/>

后台用Request.Form["cbkbSelect"]获取


Justin-Liu 2010-06-25
  • 打赏
  • 举报
回复
Checked属性
取每行CheckBox的ID,用JS操作就可以了
存入数组用回调或者ajax

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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