asp.net中TreeView异步延迟加载
来源:互联网 发布:淘宝店铺怎么搜索不到 编辑:程序博客网 时间:2024/06/12 22:07
在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败,
为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView。
在TreeView每个结点的前面都有个"+"号,点击这个”+“号触发的事件是OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" ,在刚开始加载TreeView的时候,如果结点下面
还有子节点的话,只加载一个子节点;在点击”+“号,触发OnTreeNodeExpanded事件的时候,再加载该结点下的
所有子节点,这样速度就很快了。
1、前台的显示TreeView代码如下:
- <asp:TreeView ID="TreeView1" runat="server" Font-Size="Medium" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" ForeColor="LightSlateGray" LeafNodeStyle-ForeColor="#3333ff" ShowLines="true" ExpandDepth="1">
- <SelectedNodeStyle CssClass="selectNode" />
- </asp:TreeView>
注明:可以通过selectNode控制选择结点的背景颜色。
2、后台的TreeNodeExpanded事件代码如下:
- protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
- {
- //只显示当前结点的子节点,其他结点闭合
- TreeNodeCollection tnc = null;
- if (e.Node.Parent == null)
- {
- tnc = ((TreeView)sender).Nodes;
- }
- else
- tnc = e.Node.Parent.ChildNodes;
- foreach (TreeNode node1 in tnc)
- {
- if (node1 != e.Node)
- {
- node1.Collapse();
- }
- }
- TreeNode node = (TreeNode)e.Node;
- //其中tempNodeInfo包括结点的信息
- string tempNodeInfo = node.Value;
- if (!tempNodeInfo.StartsWith("-1"))
- {
- //先将上次绑定的一个节点信息删除掉
- node.ChildNodes.Clear();
- string[] tempNodeFlag = tempNodeInfo.Split(',');
- if (tempNodeFlag[2].ToString().Equals("小区号"))
- {
- PopulateTreeViewFromFloorName("1", node, Convert.ToInt32(tempNodeFlag[4]), "1");
- }
- else if (tempNodeFlag[2].ToString().Trim().Equals("楼号"))
- {
- PopulateTreeViewFromUnit("2", node, Convert.ToInt32(tempNodeFlag[4]), Convert.ToInt32(tempNodeFlag[5]), "1");
- }
- else if (tempNodeFlag[2].ToString().Trim().Equals("单元号"))
- {
- PopulateTreeViewFromRoomUserTree("3", node, Convert.ToInt32(tempNodeFlag[4]), Convert.ToInt32(tempNodeFlag[5]), Convert.ToInt32(tempNodeFlag[6]), "1");
- }
- }
- }
注明:其中的PopulateTreeViewFromFloorName、PopulateTreeViewFromUnit、
PopulateTreeViewFromRoomUserTree的第四个参数”1“是TreeView1_TreeNodeExpanded事件触发
的标志位,根据这个标志位延迟加载。
通过这样的思路就可以实现异步延迟加载的效果。
以上内容转自:http://blog.csdn.net/wl_ldy/article/details/5732056
0 0
- asp.net中TreeView异步延迟加载
- asp.net中TreeView异步延迟加载
- Asp.net中Treeview
- asp.net中加载TreeView的模态对话框
- asp.net中TreeView的大数据加载速度优化
- asp.net中TreeView的大数据加载速度优化
- ASP.NET异步加载
- Asp.net TreeView异步加载数据,并结合checkbox实现多选删除
- 页面第一次打开即给用户异步提示之Asp.net Ajax延迟加载UpdatePanel
- asp.net 的TreeView递归加载
- asp.net 页面延迟加载内容
- asp.net Jquery图片延迟加载
- asp.net中利用jquery zTree异步加载数据
- Treeview 异步加载树
- ListView异步延迟加载
- ASP中如何延迟加载一段代码
- VB.NET中动态加载Treeview节点
- VB.NET中动态加载Treeview节点
- Spring Autowired(required = false) 说明
- tomcat部署发布JSP应用程序
- android系统常用uri
- eclipse插件集合
- tween动画重新触发
- asp.net中TreeView异步延迟加载
- startActivityForResult() 中requestCode 和 resultCode 的作用
- XP下IOS开发环境搭建
- Python Twisted框架中socket通讯
- HDU_4978_A simple probability problem.(推导or精度枚举)
- Eclipse的Tomcat插件安装
- HDU 2225 Asteroids!(三维BFS)
- Linux LVM硬盘管理及LVM扩容
- OpenCV基础