由于数据量太大,加载树时间很长,所以进行了优化

前台 .aspx

   <asp:Panel ID="Panel2" runat="server" Height="600px" ScrollBars="Auto">
<asp:TreeView ID="TreeView1" runat="server" ForeColor="Black" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
<LeafNodeStyle HorizontalPadding="3px" />
<ParentNodeStyle HorizontalPadding="3px" />
<RootNodeStyle HorizontalPadding="3px" />
<SelectedNodeStyle ForeColor="#009933" />
</asp:TreeView>
</asp:Panel>

后台.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的大数据加载速度优化的更多相关文章

  1. [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

    我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataPr ...

  2. 记一次cocos项目的加载速度优化

    半个月前,我们用cosos creator做了一个简单的小游戏,也许算不上小游戏吧..一边学cocos,一边做,几经波折后终于上线了.然鹅,功能是实现了,但是加载速度十分感人(毕竟没经验嘛,无辜脸). ...

  3. WPF 大数据加载过程中的等待效果——圆圈转动

    大家肯定遇到过或将要遇到加载大数据的时候,如果出现长时间的空白等待,一般人的概念会是:难道卡死了? 作为一个懂技术的挨踢技术,即使你明知道数据量太大正在加载,但是假如看不到任何动静,自己觉得还是一种很 ...

  4. vue-cli3项目首页加载速度优化(cdn加速,路由懒加载,gzip压缩)

    今天打算上线vue的单页面项目,上线后,首页加载速度巨慢! 原因是项目上线后,网速不够快,加载js,css等资源很慢, 打开打包好的文件发现chunk-vendors.xxxxxxx.js的包很大,达 ...

  5. iOS 图片加载速度优化

    FastImageCache 是 Path 团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动起来更顺畅,来看看它是怎么做的. 一.优化点 iOS 从磁盘加载一张图片,使用 UI ...

  6. 转: web 页面加载速度优化实战-100% 的飞跃提升

    前言 一个网站的加载速度有多重要? 反正我相信之前来 博主网站 的人至少有 50% 在加载完成前关闭了本站. 为啥捏? 看图 首页完整加载时间 8.18s,看来能进来看博主网站的人都是真爱呀,哈哈. ...

  7. C# TreeView,递归循环数据加载到treeView1中

    TblAreaBLL bll = new TblAreaBLL(); private void button1_Click(object sender, EventArgs e) { LoadData ...

  8. DevExpress ChartControl大数据加载时有哪些性能优化方法

    DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...

  9. H5网站加载速度优化总结

    1. 在代码文件结构 尽量优化的同时,能力再强已经到极限了,但你服务器辣鸡,搭配不当,你代码优化上天 也是徒劳啊. 2.你不怎么优化, 服务器 各种技术配置到位的话, now你也看到了,我一个系统首页 ...

随机推荐

  1. Jade之Filters

    Filters jade允许将其他语言嵌套到jade语言之中. 支持的有:coffee-script,:babel,:uglify-js, :less,:markdown-it. jade: :mar ...

  2. 【转】Android 当打开“开发者模式”中的“不保留活动”后,程序应当怎么保持正常运行

    当打开这个设置以后,程序的Activity会自动销毁,每次返回的时候就会不断重oncreate,此时伴随的问题多多. 参考文档:http://www.bubuko.com/infodetail-960 ...

  3. 使用页面Tag判断某个值为空值时,不能使用logic:equal(无效),可以使用logic:notPresent

    使用页面Tag判断某个值为空值时,不能使用logic:equal(无效),可以使用logic:notPresent

  4. 第八天:JS内置对象-Date日期对象

    1.Data对象 日期对象用于处理日期和时间 2.获取当日日期    代码如下: <!DOCTYPE html> <html lang="en"><h ...

  5. 基于python的堡垒机

    一 堡垒机的架构 堡垒机的核心架构通常如下图所示: 二.堡垒机的一般执行流程 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,显示当前用户 ...

  6. 通过git rebase修改commit message

    今天发现一个项目的git commit message中的单词拼错了,需要修改一下.但这样简单的修改,需要通过git rebase才能完成. 首先要git rebase到需要修改message的那个c ...

  7. 简单理解在Mac OS X上运行ASP.NET程序

    运行ASP.NET程序的三要素: 1) CLR(.NET运行时) 2) KRE(ASP.NET运行时) 3) Web服务器 所以在Mac OS X上运行ASP.NET程序,就需要对应这三要素的东西: ...

  8. 学习WPF——初识依赖项属性

    入门 首先创建一个依赖项属性 然后绑定父容器的DataContext到这个依赖项的实例 接着绑定子元素的属性到依赖项属性(注意Button的Content属性) 程序最终的运行结果:   说明 首先是 ...

  9. [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)

    @ ^ @:如果是加载到web控件上,就把注释掉的解除注释(改为web控件点后面的函数),把下一句注释 BOOL Button::LoadFromResource(UINT nRes){//打开网页加 ...

  10. Jenkins与.NET项目

    转自: https://blog.dangl.me/categories Continuous Integration RSS Date Post 2016-10-20 Set Up Private ...