蛙蛙推荐:asp.net实现分组全选部分复选框

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

蛙蛙推荐:asp.net实现分组全选部分复选框

1.声明控件,分别在页面上方一个CheckBox叫cb5,一个CheckBoxList叫shi2:

protected System.Web.UI.WebControls.CheckBox cb5;

protected System.Web.UI.WebControls.CheckBoxList shi2;

2.在aspx的html代码的head里键入以下函数

<script>

function chkchk(chkid,spanid){

var o=document.getElementById(chkid);

var obj = document.getElementById(spanid);

obj=obj.children;

for(i=0;i<obj.length;i++)

{

e=obj[i];

if(e.type=="checkbox"){

obj[i].checked=o.checked;

}

}

}

</script>

3.在后台编码里添加自定义属性

private void Page_Load(object sender, System.EventArgs e)

{

cb5.Attributes.Add("onclick","chkchk('"+cb5.ClientID+"','"+shi2.ClientID+"');");

}

4.我们来观察一些自动生成的html代码,我们就明白了

<input id="to1_cb5" type="checkbox" name="to1:cb5" onclick="chkchk('to1_cb5','to1_shi2');" />

<label for="to1_cb5">市律师协会</label>

<span id="to1_shi2">

<input id="to1_shi2_0" type="checkbox" name="to1:shi2:0" />

<label for="to1_shi2_0">admin</label>

<br>

<input id="to1_shi2_1" type="checkbox" name="to1:shi2:1" />

<label for="to1_shi2_1">5</label>

</span>

5.注意我是把所有的控件放在一个to1的UserControl里面的,所以生成的控件ID前面都带有一个"to1_",又是一下午时间,就整出来一个这个,总感觉asp.net对一些客户端编程结合的不是很好,如果不写脚本,做联动选择的话只能用服务器事件了,这就要每点击一下复选框回传一下窗体,这从性能上考虑是非常不值得的,只能出此下策了.本文的主要知识点是JavaScript的文档对象和和控件的嵌套模型,以及给服务器控件加一些客户端行为属性.

最后感谢donet技术交流群的Henman 姐姐的技术支持

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航