FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 5438|回复: 7
打印 上一主题 下一主题

为什么treeFolder.ExpandAllNodes()控件自身的方法,只展开第二层

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-23 14:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么treeFolder.ExpandAllNodes()控件自身的方法,只展开第二层,而折叠却可以全部收起?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-1-6 08:39:51 | 只看该作者
代码看看
板凳
 楼主| 发表于 2013-1-6 14:36:58 | 只看该作者
guns_ken 发表于 2013-1-6 08:39
代码看看


        protected void btnExpandAll_Click(object sender, EventArgs e)
        {
            treeNav.ExpandAllNodes();
        }




<x:Toolbar ID="Toolbar1" runat="server">
                         <Items>
                             <x:Button ID="Button1" runat="server" Text="展开" OnClick="btnExpandAll_Click">
                             </x:Button>
                             <x:Button ID="Button2" runat="server" Text="折叠" OnClick="btnCollapseAll_Click">
                             </x:Button>
                         </Items>
                     </x:Toolbar>

地板
发表于 2013-1-7 01:43:37 | 只看该作者
我每加载一个节点都会设置一次Expanded的,你这个问题我以前也遇到过,第二级不展开
5#
 楼主| 发表于 2013-1-7 12:46:38 | 只看该作者
guns_ken 发表于 2013-1-7 01:43
我每加载一个节点都会设置一次Expanded的,你这个问题我以前也遇到过,第二级不展开 ...
  1.                  <Toolbars>
  2.                      <x:Toolbar ID="Toolbar1" runat="server">
  3.                          <Items>
  4.                              <x:Button ID="btnExpandAll" runat="server" Text="展开" OnClick="btnExpandAll_Click">
  5.                              </x:Button>
  6.                              <x:Button ID="btnCollapseAll" runat="server" Text="折叠" OnClick="btnCollapseAll_Click">
  7.                              </x:Button>
  8.                          </Items>
  9.                      </x:Toolbar>
  10.                  </Toolbars>
  11.                     <Items>
  12.                     <x:Tree ID="treeNav" runat="server" AutoScroll="true" EnableArrows="true"
  13.             Title="文件夹管理器" EnableLargeHeader="True" onnodecommand="treeNav_NodeCommand" ShowHeader="False">
  14.                     </x:Tree>
  15.                     </Items>
  16.                
复制代码
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;

  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;

  7. using System.Data;
  8. using ExtAspNet;
  9. using Jazz.DBUtility;

  10. namespace WebJazz.FileSys
  11. {
  12.     public partial class _default : iBasePage
  13.     {
  14.         protected void Page_Load(object sender, EventArgs e)
  15.         {
  16.             if (!IsPostBack)
  17.             {
  18.                
  19.                 LoadTree();
  20.                
  21.                 treeNav.ExpandAllNodes();
  22.                 InitCtrl();
  23.             }
  24.         }

  25.         protected void btnExpandAll_Click(object sender, EventArgs e)
  26.         {
  27.             treeNav.ExpandAllNodes();
  28.         }

  29.         protected void btnCollapseAll_Click(object sender, EventArgs e)
  30.         {
  31.             treeNav.CollapseAllNodes();
  32.         }


  33.         protected void treeNav_NodeCommand(object sender, TreeCommandEventArgs e)
  34.         {
  35.             gridFile.PageIndex = 0;
  36.             gridFile.FindColumn("FolderName").Hidden = true;
  37.             ttbSearch.Text = null;
  38.             BindGrid();
  39.         }

  40.         # region 生成无限级树

  41.         public void LoadTree()
  42.         {
  43.             Jazz.BLL.FileSys.Folder bll = new Jazz.BLL.FileSys.Folder();

  44.             string str = string.Format("SELECT DISTINCT dbo.zz_FileSys_Folder.* FROM dbo.zz_FileSys_Folder WHERE (zz_FileSys_Folder.ParentId IS NULL) ORDER BY FolderSortIndex");

  45.             DataTable dt = DbHelperSQL.Query(str).Tables["ds"];
  46.             
  47.             foreach (DataRow row in dt.Rows)
  48.             {
  49.                 ExtAspNet.TreeNode node = new ExtAspNet.TreeNode();

  50.                 node.NodeID = row["FolderId"].ToString();
  51.                 node.Text = row["FolderName"].ToString();

  52.                 string sqlstr = string.Format("ParentId='{0}'", row["FolderId"].ToString());
  53.                 int child = bll.GetList(sqlstr).Tables["ds"].Rows.Count;
  54.                 if (child == 0)
  55.                 {
  56.                     //
  57.                 }
  58.                 else
  59.                 {
  60.                     node.Expanded = true;
  61.                     node.SingleClickExpand = true;
  62.                     LoadChild(row["FolderId"].ToString(), node);

  63.                 }
  64.                 treeNav.Nodes.Add(node);
  65.                
  66.             }

  67.         }

  68.         public void LoadChild(string parentid, ExtAspNet.TreeNode treeNode)
  69.         {
  70.             Jazz.BLL.FileSys.Folder bll = new Jazz.BLL.FileSys.Folder();
  71.             string str = string.Format("SELECT DISTINCT dbo.zz_FileSys_Folder.* FROM  dbo.zz_FileSys_Folder WHERE (zz_FileSys_Folder.ParentId='{0}') ORDER BY zz_FileSys_Folder.FolderSortIndex", parentid);
  72.   
  73.             DataTable dt = DbHelperSQL.Query(str).Tables["ds"];
  74.             
  75.             if (dt.Rows.Count > 0)
  76.             {
  77.                 foreach (DataRow row in dt.Rows)
  78.                 {

  79.                     ExtAspNet.TreeNode node = new ExtAspNet.TreeNode();
  80.                     
  81.                     node.NodeID = row["FolderId"].ToString();
  82.                     node.Text = row["FolderName"].ToString();
  83.                     node.EnablePostBack = true;

  84.                     string sqlstr = string.Format("ParentId='{0}'", row["FolderId"].ToString());
  85.                     int child = bll.GetList(sqlstr).Tables["ds"].Rows.Count;
  86.                     if (child == 0)
  87.                     {
  88.                         //
  89.                     }
  90.                     else
  91.                     {
  92.                         node.Expanded = true;
  93.                         node.SingleClickExpand = true;
  94.                         LoadChild(row["FolderId"].ToString(), node);
  95.                     }
  96.                     treeNode.Nodes.Add(node);
  97.                 }
  98.             }
  99.         }


  100.         #endregion


  101.         #region BindGrid

  102.         private DataTable GridSource()
  103.         {
  104.             Jazz.BLL.FileSys.File bll = new Jazz.BLL.FileSys.File();
  105.             string str;
  106.             string searchText = ttbSearch.Text.Trim();
  107.             if (!String.IsNullOrEmpty(searchText))
  108.             {
  109.                 if (chkSubFolder.Checked)
  110.                     str = string.Format("SELECT DISTINCT dbo.view_FolderFile.* FROM  dbo.view_FolderFile WHERE ((view_FolderFile.FolderId='{0}' OR CHARINDEX('{0},',vFolderFullPath)>0) AND CHARINDEX('{1}',FileName)>0)", treeNav.SelectedNodeID, searchText);
  111.                 else
  112.                     str = string.Format("SELECT DISTINCT dbo.view_FolderFile.* FROM  dbo.view_FolderFile WHERE (view_FolderFile.FolderId='{0}' AND CHARINDEX('{1}',FileName)>0)", treeNav.SelectedNodeID, searchText);
  113.             }
  114.             else
  115.                 str = string.Format("SELECT DISTINCT dbo.view_FolderFile.* FROM  dbo.view_FolderFile WHERE (view_FolderFile.FolderId='{0}')", treeNav.SelectedNodeID);

  116.             DataTable dt = DbHelperSQL.Query(str).Tables["ds"];
  117.             return dt;

  118.         }
  119.         private void BindGrid()
  120.         {
  121.             DataTable dt= GridSource();
  122.             gridFile.SelectedRowIndexArray = null;
  123.             gridFile.DataSource = dt;
  124.             gridFile.DataBind();
  125.         }

  126.         protected void gridFile_PageIndexChange(object sender, GridPageEventArgs e)
  127.         {
  128.             gridFile.PageIndex = e.NewPageIndex;
  129.         }

  130.         protected void gridFile_RowCommand(object sender, GridCommandEventArgs e)
  131.         {
  132.             object[] values = gridFile.DataKeys[e.RowIndex];
  133.             int id = Convert.ToInt32(values[0]);
  134.             string name = Convert.ToString(values[1]);

  135.             if (e.CommandName == "Delete")
  136.             {
  137.             }
  138.         }

  139.         protected void gridFile_RowDoubleClick(object sender, GridRowClickEventArgs e)
  140.         {

  141.         }

  142.         protected void gridFile_Sort(object sender, GridSortEventArgs e)
  143.         {
  144.             DataTable dt = GridSource();
  145.             DataView dv = dt.DefaultView;
  146.             dv.Sort = string.Format("{0} {1}", e.SortField, e.SortDirection);

  147.             gridFile.DataSource = dv;
  148.             gridFile.DataBind();

  149.         }
  150.         #endregion

  151.         protected void btnUpload_Click(object sender, EventArgs e)
  152.         {
  153.             //winFrame.GetShowReference("fileUpload.aspx", "新增");
  154.         }
  155.         protected void WinFrame_Close(object sender, WindowCloseEventArgs e)
  156.         {
  157.             BindGrid();
  158.         }

  159.         private void NodeExpand()
  160.         {
  161.             //treeNav.SelectedNodeID = "3";
  162.             //treeNav.SelectedNode.Text = "项目文件";
  163.             //指定展开某个节点,并为选中状态
  164.             BindGrid();
  165.         }

  166.         private void InitCtrl()
  167.         {
  168.             NodeExpand();
  169.             btnUpload.OnClientClick = winFrame.GetShowReference("fileUpload.aspx", "新增");
  170.         }

  171.         #region Events

  172.         protected void ttbSearch_Trigger1Click(object sender, EventArgs e)
  173.         {
  174.             ttbSearch.Text = String.Empty;
  175.             ttbSearch.ShowTrigger1 = false;
  176.             BindGrid();
  177.         }

  178.          protected void ttbSearch_Trigger2Click(object sender, EventArgs e)
  179.         {
  180.              ttbSearch.ShowTrigger1 = true;
  181.              gridFile.FindColumn("FolderName").Hidden=false;
  182.              BindGrid();
  183.         }
  184.         
  185.         #endregion

  186.     }
  187. }
复制代码

6#
发表于 2013-1-7 20:18:39 | 只看该作者
这是一个BUG,已经确认并修正:

+修正ExpandAllNodes无法展开二级节点的问题(szjazz)。
                -现在有两个办法来展开全部节点tree.ExpandAllNodes()或者PageContext.RegisterStartupScript(tree.GetExpandAllNodesReference())。

你可以下载最新的源代码自己编译,也可以先使用
  1. PageContext.RegisterStartupScript(tree.GetExpandAllNodesReference())
复制代码
来展开全部树节点。
7#
 楼主| 发表于 2013-1-8 00:09:02 | 只看该作者
sanshi 发表于 2013-1-7 20:18
这是一个BUG,已经确认并修正:

+修正ExpandAllNodes无法展开二级节点的问题(szjazz)。

如何展开指定从根节点到某个节点的所经过分支
8#
发表于 2013-1-8 08:24:46 | 只看该作者
szjazz 发表于 2013-1-8 00:09
如何展开指定从根节点到某个节点的所经过分支

这样特殊的要求就自己写代码了,判断每个节点是否展开....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-24 17:22 , Processed in 0.047933 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表