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

前台 .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

最新文章

  1. 【leetcode】Combination Sum III(middle)
  2. js实现选项卡
  3. 李洪强iOS学习交流群-iOS大神群
  4. 数组去重,call、apply、bind之间的区别,this用法总结
  5. 20个开发人员非常有用的Java功能代码
  6. AutoFac+ASP.NetMvc,AspNet.Core
  7. 基于maven的spring-boot的pom文件详解
  8. Android启动页欢迎界面大全 (网址)
  9. HashMap、HashTable
  10. 整理python小爬虫
  11. 绑定Oracle Database 到 ActiveReport
  12. 使用Java进行串口SerialPort通讯
  13. Android 4.0以上BlurMaskFilter效果无效
  14. Vuejs中slot实现自定义组件header、footer等
  15. 使用Bootstrap 3开发响应式网站实践01,前期准备、导航区域等
  16. 第二章 企业项目开发--maven父子模块
  17. Zabbix proxy 3.2安装部署
  18. 理解java的三大特性之多态
  19. 使用distillery 实现版本的动态升级&amp;&amp; 动态降级
  20. Spark internal - 多样化的运行模式 (下)

热门文章

  1. 多线程JAVA篇(一)
  2. C语言extern作用(全局变量)
  3. Hadoop on Docker
  4. (转载)Autodesk面试技术题解答
  5. 改进ConcurrentDictionary并行使用的性能
  6. mongodb(一) NoSQL简介
  7. Windows 8.1 开发过程中遇到的小问题(2)
  8. jpa 注解使用说明
  9. Coded UI Test中的数据驱动测试
  10. Java-基础练习2