asp.net中用TreeView控件的TreeNodePopulate事件实现无限分级的好办法
2010-01-13 18:23
477 查看
最近写一个用treeview控件无限分级的程序,在网上查了好多资料,大多数都是递归调用方法,觉得很复杂后来无意中翻看msdn并参照了一下,觉得这是个最好的办法,一说你就会豁然开朗。TreeView的事件中就有一项TreeNodePopulate事件为:正在填充TreeNode时激发某事件,给该事件写方法,就可以写从数据库中读取相应的子节点内容了。特别注意的就是在动态填充的时候一定要将节点的PopulateOnDemand属性设为true如下的例子:
TreeNode tn = new TreeNode();
tn.Text = dr["orgname"].ToString();
tn.PopulateOnDemand = true;
TreeView1.Nodes.Add(tn);
这样添加节点就会引发TreeNodePopulate事件。
具体实现代码如下:
TreeNode tn = new TreeNode();
tn.Text = dr["orgname"].ToString();
tn.PopulateOnDemand = true;
TreeView1.Nodes.Add(tn);
这样添加节点就会引发TreeNodePopulate事件。
具体实现代码如下:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { TAdo Ado = new TAdo(); DataTable dt; protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; string sSql = "select * from Catalog"; dt = Ado.runSqlGetTable(sSql); //将要绑定的数据表一次性加载到内存中, 避免多次断开、连接数据库 TreeNode tn = new TreeNode(); tn.Text = "公司文档栏目"; tn.Value = "1"; //初始化根节点 TreeNodeEventArgs args = new TreeNodeEventArgs(tn); TreeView1_TreeNodePopulate(TreeView1, args); //触发绑定事件 TreeView1.Nodes.Add(tn); } protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e) { DataRow[] rows = dt.Select("CatalogParentID = " + e.Node.Value); //从内存表中得到所有子节点 foreach (DataRow row in rows) { TreeNode tn = new TreeNode(); tn.Text = row["CatalogName"].ToString(); tn.Value = row["CatalogID"].ToString(); tn.PopulateOnDemand = true; //这个不能掉, 不然它就不会继续触发事件绑定 e.Node.ChildNodes.Add(tn); } } }
相关文章推荐
- asp.net中用TreeView控件实现无限分级的好办法
- ASP.NET 2.0 利用TreeView控件实现无限分级
- asp.net如何实现按回车键就执行按钮的Click()事件的办法
- asp.net 2.0中treeview控件实现无限级分类
- 使用ComponentArt.WebUI.for.Asp.net.3.0的TreeView控件实现数据驱动的无限级分类管理[图文教程]
- 使用ComponentArt.WebUI.for.Asp.net.3.0的TreeView控件实现数据驱动的无限级分类
- asp.net mvc + ExtJs 实现无限级TreePanel 加载、添加、编辑、删除
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
- ASP.Net TextBox里面实现回车触发按钮事件
- ASP.Net 中实现GridView鼠标的移入与移出事件
- EasyUI Tree+Asp.net实现权限树或目录树导航
- asp.net页面触发事件panel滚动条高度不变的实现方法
- ASP.NET 2.0中GridView无限层复杂表头的实现
- 如何实现Asp.Net控件的双击事件
- ASP.NET中使用GridView实现分级显示的代码
- asp.net利用Global.asax来实现定点执行任务的简易解决办法
- asp.net页面动态添加控件造成控件事件不响应的解决办法
- ASP.NET 2.0中GridView无限层复杂表头的实现
- F#与ASP.NET(2):使用F#实现基于事件的异步模式
- F#与ASP.NET(2):使用F#实现基于事件的异步模式