如何让checkboxlist的选项全部选中? 我想在checkboxlist中有一个选项为all,当选中该项时,所有的选项全部选中,而如果去掉某一选项时,all选项自动不再选中。所有这些动作在客户端完成,不要提交到服务器从而引起整页面刷新。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 str_checkbox_id是服务器控件名在onclick中调用,比如onclick="SelectAllCheckBox(this, 'CB_Module')"// 根据str_checkbox_id的状态来实现全选/全取消 function SelectAllCheckBox( tempControl, str_checkbox_id ){ var cb_header = tempControl; var inputs = document.all.tags("INPUT"); for (var i = 0; i < inputs.length; i++) // 遍历页面上所有的 input { if (inputs[i].type == "checkbox" && inputs[i].id.substr(inputs[i].id.length - str_checkbox_id.length, str_checkbox_id.length) == str_checkbox_id ) inputs[i].checked = cb_header.checked; }} 我没太看明白上面的代码,我的checkboxlist是服务器端的控件,里面的选项要动态的从数据库中加载,然后再手动地添加一项all,在选择其中的选项时,希望实现上面我想要得功能。请大家帮忙! function checkall(val){ for(var i=0;i<document.all.length;i++) { if(document.all(i).tagName == "SELECT" && document.all(i).type == "select-one" && document.all(i).id != "dropAll") { document.all(i).options[val].selected = true; } }} “遍历页面上所有的 input”?忒大胆呀。foreach(ListItem m in yourCheckBoxList.Items) m.Attrobutes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;"; 请大家说的详细一点。checkboxlist 并没有onclick属性呀? Q: checkboxlist 并没有onclick属性呀?————————————————————————————————————————A:那个不是 item 上边的嘛,再说是.Attributes["onclick"]也不是.onclick,要注意。给你写完整一点:string scp="if(this.selected){";foreach(ListItem m in yourCheckBoxList.Items) { m.Attrobutes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;"; scp += m.ClientID+".checked=this.checked;"; }scp += scp+"};";yourSelectAllCheckBox.Attributes[onclick]=scp; string scp="if(this.selected){";foreach(ListItem m in yourCheckBoxList.Items) { m.Attributes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;"; scp += m.ClientID+".checked=this.checked;"; }scp += scp+"};";yourSelectAllCheckBox.Attributes["onclick"]=scp; 唉,我还是没明白?sp1234朋友你的方法是不是每点击一下checkboxlist的选项都要提交到服务器呀?1楼朋友的方法我用了怎么没反应?可能是我用错了。请哪位热心的朋友 把测试页面的代码贴出来吧,我很菜鸟,请勿见笑。多谢了。 private void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e){ if(this.CheckBoxList1.SelectedItem.Text.Equals("all")) { for(int i=0;i<this.CheckBoxList1.Items.Count;i++) { if(!this.CheckBoxList1.Items[i].Selected) { this.CheckBoxList1.Items[i].Selected=true; } } } else { if(this.CheckBoxList1.SelectedItem.Selected) { int index=this.CheckBoxList1.Items.IndexOf(this.CheckBoxList1.Items.FindByText("all")); if(this.CheckBoxList1.Items[index].Selected) { this.CheckBoxList1.Items[index].Selected=false; } } } } string scp="if(this.selected){";foreach(ListItem m in yourCheckBoxList.Items) { m.Attributes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;"; scp += m.ClientID+".checked=this.checked;"; }scp += scp+"};";this.button1.Attributes.add("onclick",scp); ------------------------------------------------------表示支持!!!!!!楼主把代码写在 page_load 里面! 这段会把脚本代码加入到 空件的属性当中,在客户端执行. Q: sp1234朋友你的方法是不是每点击一下checkboxlist的选项都要提交到服务器呀?——————————————————————————————————————————A: 不是。那是使用后台产生准确的脚本。 由于你不确定要控制的对象是在页面还是组合控件中,会有多少个,所以你既不能像当然地在脚本中规定控件的客户端id(由于不能准确知道id,所有有了“遍历整个页面”那种吓人写法),也不能随便写函数出去(当你把代码从aspx改为ascx并且复用的时候就会和其他地方的同名函数冲突,及时用户控件被在页面上放两个也会冲突)。从这个论坛看,这是两种最常见的写脚本的时候范的错误。所以我说控件的脚本要在控件内写,不要分散到别的地方,免得将来维护麻烦。我昨天还回答了一个关于javascript的帖子,参见:http://community.csdn.net/Expert/topic/5067/5067184.xml?temp=.7151758 >>由于你不确定要控制的对象是在页面还是组合控件中,会有多少个-----------------------------------------------------------------我所要控制的就是checkboxlist这一个服务器端的控件,id 是固定的,只是checkboxlist里面的选项需要从数据库中读取,checkboxlist里面事先手动添加了一个选项(all选项),当选中该项时,所有的其他选项都被选中 一个foreach不就搞定了吗?哈哈 i just think like the first floor. Q:我所要控制的就是checkboxlist这一个服务器端的控件,id 是固定的————————————————————————————————————————A:你可能忽视了或者还没有理解一个理念的东西。当用相当的代价去写代码的时候(更何况其实往往更简洁),程序员坚持一种在当时环境千方百计给自己找理由的做法,而不是使用可移植性的思路,这比不懂技术更有害。 两个 HtmlEncode 区别? 怎样插入图片? 大家是如何处理特殊字符的? 敬求,从查询结果到内存表的程序。 急!!!!!!!!---------请教远程升级程序编写问题,请高手们指点 超难问题(希望各位高手给点思路或者是例子,不然MSDN上给点指教)!不够分可另开贴给分! 去掉,号 .net生成pdf的问题,页眉和页脚如何使用中文? 在ASP.NET里动态生成TEXTBOX? 代码分离问题, 十分感谢 批量删除的问题..求解 请大家谈谈VS2005使用的心得体会
在onclick中调用,比如onclick="SelectAllCheckBox(this, 'CB_Module')"// 根据str_checkbox_id的状态来实现全选/全取消
function SelectAllCheckBox( tempControl, str_checkbox_id )
{
var cb_header = tempControl;
var inputs = document.all.tags("INPUT");
for (var i = 0; i < inputs.length; i++) // 遍历页面上所有的 input
{
if (inputs[i].type == "checkbox" && inputs[i].id.substr(inputs[i].id.length - str_checkbox_id.length, str_checkbox_id.length) == str_checkbox_id )
inputs[i].checked = cb_header.checked;
}
}
请大家帮忙!
{
for(var i=0;i<document.all.length;i++)
{
if(document.all(i).tagName == "SELECT" && document.all(i).type == "select-one" && document.all(i).id != "dropAll")
{
document.all(i).options[val].selected = true;
}
}
}
m.Attrobutes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;";
checkboxlist 并没有onclick属性呀?
————————————————————————————————————————
A:那个不是 item 上边的嘛,再说是.Attributes["onclick"]也不是.onclick,要注意。给你写完整一点:string scp="if(this.selected){";
foreach(ListItem m in yourCheckBoxList.Items)
{
m.Attrobutes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;";
scp += m.ClientID+".checked=this.checked;";
}
scp += scp+"};";
yourSelectAllCheckBox.Attributes[onclick]=scp;
foreach(ListItem m in yourCheckBoxList.Items)
{
m.Attributes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;";
scp += m.ClientID+".checked=this.checked;";
}
scp += scp+"};";
yourSelectAllCheckBox.Attributes["onclick"]=scp;
sp1234朋友你的方法是不是每点击一下checkboxlist的选项都要提交到服务器呀?
1楼朋友的方法我用了怎么没反应?可能是我用错了。
请哪位热心的朋友 把测试页面的代码贴出来吧,我很菜鸟,请勿见笑。
多谢了。
{
if(this.CheckBoxList1.SelectedItem.Text.Equals("all"))
{
for(int i=0;i<this.CheckBoxList1.Items.Count;i++)
{
if(!this.CheckBoxList1.Items[i].Selected)
{
this.CheckBoxList1.Items[i].Selected=true;
}
}
}
else
{
if(this.CheckBoxList1.SelectedItem.Selected)
{
int index=this.CheckBoxList1.Items.IndexOf(this.CheckBoxList1.Items.FindByText("all"));
if(this.CheckBoxList1.Items[index].Selected)
{
this.CheckBoxList1.Items[index].Selected=false;
}
}
}
}
foreach(ListItem m in yourCheckBoxList.Items)
{
m.Attributes["onclick"]=yourSelectAllCheckBox.ClientID+".checked=false;";
scp += m.ClientID+".checked=this.checked;";
}
scp += scp+"};";
this.button1.Attributes.add("onclick",scp); ------------------------------------------------------表示支持!!!!!!楼主把代码写在 page_load 里面! 这段会把脚本代码加入到 空件的属性当中,
在客户端执行.
——————————————————————————————————————————
A: 不是。那是使用后台产生准确的脚本。
http://community.csdn.net/Expert/topic/5067/5067184.xml?temp=.7151758
-----------------------------------------------------------------
我所要控制的就是checkboxlist这一个服务器端的控件,id 是固定的,只是checkboxlist里面的选项需要从数据库中读取,checkboxlist里面事先手动添加了一个选项(all选项),当选中该项时,所有的其他选项都被选中
————————————————————————————————————————
A:你可能忽视了或者还没有理解一个理念的东西。当用相当的代价去写代码的时候(更何况其实往往更简洁),程序员坚持一种在当时环境千方百计给自己找理由的做法,而不是使用可移植性的思路,这比不懂技术更有害。