asp.net treeview 异步加载
在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败,
为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView。
在TreeView每个结点的前面都有个"+"号,点击这个”+“号触发的事件是OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" ,在刚开始加载TreeView的时候,如果结点下面
还有子节点的话,只加载一个子节点;在点击”+“号,触发OnTreeNodeExpanded事件的时候,再加载该结点下的
所有子节点,这样速度就很快了。
aspx代码
<asp:TreeView ID="TreeView1" runat="server" Font-Size="Medium" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" ForeColor="LightSlateGray" LeafNodeStyle-ForeColor="#3333ff" ShowLines="true" ExpandDepth="">
<SelectedNodeStyle CssClass="selectNode" />
</asp:TreeView>
aspx.cs代码
#region wsw更改树的加载方式
private void LoadNewTree()
{
DataTable dtp = pagBLL.GetList(" superfuncid=0 order by sort asc").Tables[];
if (dtp.Rows.Count > )
{
//首先清除树型控件内的结点
this.TreeView1.Nodes.Clear();
for (int i = ; i < dtp.Rows.Count; i++)
{ //实例出一个结点
TreeNode Node = new TreeNode();
Node.Text = dtp.Rows[i]["funcname"].ToString();
Node.Value = dtp.Rows[i]["pagefuncid"].ToString();
Node.ToolTip = dtp.Rows[i]["funcurl"].ToString();
Node.ImageUrl = "../../" + dtp.Rows[i]["imageurl"].ToString();
this.TreeView1.Nodes.Add(Node);//增加父节点,这时直接往树TreeView1上加
this.LoadAddSign(Node.ChildNodes,Convert.ToInt32(dtp.Rows[i]["pagefuncid"].ToString()));//wsw更改
TreeView1.CollapseAll(); }
}
}
/// <summary>
/// 用于加载显示 树形控件 +号的,加载下面的一个节点。
/// </summary>
/// <param name="Conn"></param>
/// <param name="tn"></param>
/// <param name="DeptId"></param>
private void LoadAddSign( TreeNodeCollection tn, int DeptId) //wsw更改
{
DataTable table = pagBLL.GetList(" superfuncid=" + DeptId + " order by sort asc").Tables[];
if (table.Rows.Count > )
{
//加载"一个"1级节点,就是为了显示 + 号
tn.Add(new TreeNode()); }
}
/// <summary>
/// 点击 + 号是节点展开事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
TreeNode node = e.Node;
if (node.Expanded == true)
{
string bm = e.Node.Value.ToString();//wsw更改
DataTable table = pagBLL.GetList(" superfuncid=" + bm + " order by sort asc").Tables[]; node.ChildNodes.Clear(); //清除之前加载的空节点。
if (table.Rows.Count > )
{
for (int i = ; i < table.Rows.Count; i++)
{
TreeNode Node = new TreeNode();
Node.Text = table.Rows[i]["funcname"].ToString();
Node.Value = table.Rows[i]["pagefuncid"].ToString();
Node.ToolTip = table.Rows[i]["funcurl"].ToString();
Node.ImageUrl = "../../" + table.Rows[i]["imageurl"].ToString();
node.ChildNodes.Add(Node);//增加父节点,这时直接往树TreeView1上加
this.LoadAddSign(Node.ChildNodes, Convert.ToInt32(table.Rows[i]["pagefuncid"].ToString()));//wsw更改
} }
} }
#endregion
asp.net treeview 异步加载的更多相关文章
- Jquery zTree结合Asp.net实现异步加载数据
zTree结合Asp.net实现异步加载数据 实现简单操作 zTree 下载 api 访问 :http://www.ztree.me/v3/main.php 例子中用到json数据转化 newtons ...
- winform TreeView的一些用法以及异步加载
今天,主要弄了一下对于树型控件的一些方法,以及异步加载.参考: http://www.cnblogs.com/greatverve/archive/2012/03/23/winform-treevie ...
- Ajax 异步加载
AJAX (Asynchronous JavaScript and XML,异步的 JavaScript 和 XML).它不是新的编程语言,而是一种使用现有标准的新方法,是在不重新加载整个页面的情况下 ...
- winform异步加载数据到界面
做一个学习记录. 有两个需求: 1.点击按钮,异步加载数据,不卡顿UI. 2.把获取的数据加载到gridview上面. 对于需求1,2,代码如下: public delegate void ShowD ...
- 【Android】纯代码创建页面布局(含异步加载图片)
开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...
- 【代码笔记】iOS-实现网络图片的异步加载和缓存
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. se ...
- 使用jOrgChart插件, 异步加载生成组织架构图
jOrgChart插件是一个用来实现组织结构图的Jquery的插件- 一.特点 1.支持拖拽修改子节点: 2.支持节点缩放展示: 3.方便修改css定义样式: 4.超轻量型: 5.兼容性好,基本支持所 ...
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- winform进程、线程、TreeView递归加载
进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...
随机推荐
- 升级xcode6和ios8后,unity遇到的一些小问题
升级最新的Xocde6后,如果不是最新版本的unity,虽然也可以也可以正常的build,但如果想通过unity连真机进行profile的话,就会在xocde中报错,这个的主要原因是unity的配置里 ...
- PHP Error 和 Logging 函数
PHP Error 和 Logging 函数 PHP Error 和 Logging 简介 Error 和 Logging 函数允许您对错误进行处理和记录. Error 函数允许用户定义错误处理规则, ...
- 使用photoshop,把图片背景变成透明
鄙人使用的是photoshop CS6,win7系统,好了废话不多说,我们开始吧 1.打开photoshop,选择一个要编辑的图片 2.在右下角的图层面板上用鼠标左键快速双击背景图层为图片解锁 3.在 ...
- mysql的udf应用
一.mysql的Mysql-udf-http参见文章http://blog.s135.com/mysql-udf-http/ 注:centos安装后如果无法提交数据,请关闭selinux二.mysql ...
- Gradient
https://en.wikipedia.org/wiki/Gradient
- Strong AI Versus Weak AI
Computer Science An Overview _J. Glenn Brookshear _11th Edition The conjecture that machines can be ...
- Machine Learning in Action -- FP-growth
要解决的问题,频繁项集 最暴力的方法,就是遍历所有的项集组合,当然计算量过大 最典型的算法apriori, 算法核心思想,当一个集合不是频繁项集,那么它的超集也一定不是频繁项集 这个结论是很明显的,基 ...
- MyEclipse安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)
MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本) 2014-04-28 21:09 MyEclipse 阿超 19171 views 众所周知M ...
- php--tp3.2引入sphinx搜索
1.首先我们把coreseek下载好,命名为coreseek,我们找到coreseek/etc中的csft_mysql.conf修改这个配置文件 #源定义 source lemai { type ...
- PM2的使用
PM2 是一个带有负载均衡功能的 Node 应用的进程管理器. 安装 npm install -g pm2 启动程序:pm2 start <app_name|id|all> 列举进程:pm ...