为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

TreeView复选框

2017-12-05 5页 doc 17KB 53阅读

用户头像

is_731942

暂无简介

举报
TreeView复选框TreeView复选框 TreeView设置checkbox事件__doPostBack() ASP.NET 2.0使用TreeView控件时发现带有CheckBox控件的TreeNode对象(Treeview节点),选择CheckBox无法回发页面。在MSDN中对于TreeView, TreeNodeCheckChanged事件有一段备注:“当TreeView控件的复选框的两次向服务器发送之间要更改状态时,会引发TreeNodeCheckChanged事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个...
TreeView复选框
TreeView复选框 TreeView设置checkbox事件__doPostBack() ASP.NET 2.0使用TreeView控件时发现带有CheckBox控件的TreeNode对象(Treeview节点),选择CheckBox无法回发页面。在MSDN中对于TreeView, TreeNodeCheckChanged事件有一段备注:“当TreeView控件的复选框的两次向服务器发送之间要更改状态时,会引发TreeNodeCheckChanged事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程(如更新数据库或显示的内容)。尽管TreeNodeCheckChanged事件在回发时激发,但更改复选框不会导致回发。”说明框架本身并不提供一个CheckBoX回发的机制。 尽管点击CheckBox不会引起回发(PostBack),这样做能够做到checkbox的自动回发。 但在构建树的时候,是没有办法在TreeNode上定义事件,所有我们把这个事件加在TreeView上。 TreeView1.Attributes.Add("onclick", "postBackByObject()"); //注册客户端事件 1 在.NET中,所有的服务器控件提交到服务器的时候,都会调用__doPostBack("","")这个函数。 第一个参数是你希望提交到服务器的控件的ID号,第二个参数为事件参数。 __doPostBack()函数不是每次后台编译都生成,拉或者出一个TreeView或者DataGrid它就会有。如果没有,我们也可以在后台添加它。 __doPostBack()的原型如下: 1 其它控件也可以调用这个事件。比如:TextBox1.Attributes["onclick"] = "__doPostBack(Button1,")",那它不仅可以返回服务器处理,还能调用其它控件的特有函数。 后台CS代码如下: 1 #region 级联父子节点的复选框状态 2 3 protected void TreeView_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e) 4 { 5 SetChildChecked(e.Node); 6 //判断是否根节点 7 if (e.Node.Parent != null) 8 { 9 SetParentChecked(e.Node); 10 } 11 } 12 13 /// 14 /// 根据父节点状态设置子节点的状态 15 /// 16 /// 17 private void SetChildChecked(TreeNode parentNode) 18 { 19 foreach (TreeNode node in parentNode.ChildNodes) 20 { 21 node.Checked = parentNode.Checked; 22 if (node.ChildNodes.Count > 0) 23 { 24 SetChildChecked(node); 25 } 26 } 27 } 28 29 private void SetParentChecked(TreeNode childNode) 30 { 31 TreeNode parentNode = childNode.Parent; 32 if (!parentNode.Checked && childNode.Checked) 33 { 34 int ichecks = 0; 35 foreach (TreeNode node in parentNode.ChildNodes) 36 { 37 if (node.Checked) 38 { 39 ichecks++; 40 } 41 } 42 if (ichecks == parentNode.ChildNodes.Count) 43 { 44 parentNode.Checked = true; 45 if (parentNode.Parent != null) 46 { 47 SetParentChecked(parentNode); 48 } 49 } 50 } 51 else if (parentNode.Checked && !childNode.Checked) 52 { 53 parentNode.Checked = false; 54 } 55 } 56 57 #endregion
/
本文档为【TreeView复选框】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索