From ecc50865772998c953a74d5cdfe91e39c91a0852 Mon Sep 17 00:00:00 2001 From: cyf Date: Fri, 22 May 2026 10:24:58 +0000 Subject: [PATCH] SVN r1181 SVN-Revision: r1181 --- 插件库/Lskj.Control/TabControlEx.cs | 17 +++++-- .../Lskj.Control/TreeBandedGridControlEx.cs | 50 ++++++++++++++++++- 插件库/Lskj.Control/TreeGridControlEx.cs | 8 +-- 3 files changed, 66 insertions(+), 9 deletions(-) diff --git a/插件库/Lskj.Control/TabControlEx.cs b/插件库/Lskj.Control/TabControlEx.cs index 9a6ef7a..7175eb1 100644 --- a/插件库/Lskj.Control/TabControlEx.cs +++ b/插件库/Lskj.Control/TabControlEx.cs @@ -2128,10 +2128,19 @@ namespace Lskj.Control gridControl.GridView.DoubleClick -= new EventHandler(OnGridCompleted); if (gridControl is TreeGridControlEx) { - TreeGridControlEx treeGridControlEx = gridControl as TreeGridControlEx; - treeGridControlEx.SetGridViewDataSource(table, false); - dataRowCount = (treeGridControlEx.TreeListObj.DataSource as DataTable).Rows.Count; - //treeGridControlEx.TreeListObj.ExpandAll(); + + if (gridControl is TreeBandedGridControlEx) + { + TreeBandedGridControlEx treeGridControlEx = gridControl as TreeBandedGridControlEx; + treeGridControlEx.SetGridViewDataSource(table, false); + dataRowCount = (treeGridControlEx.TreeListObj.DataSource as DataTable).Rows.Count; + } + else + { + TreeGridControlEx treeGridControlEx = gridControl as TreeGridControlEx; + treeGridControlEx.SetGridViewDataSource(table, false); + dataRowCount = (treeGridControlEx.TreeListObj.DataSource as DataTable).Rows.Count; + } } else { diff --git a/插件库/Lskj.Control/TreeBandedGridControlEx.cs b/插件库/Lskj.Control/TreeBandedGridControlEx.cs index 32fb138..e772d1d 100644 --- a/插件库/Lskj.Control/TreeBandedGridControlEx.cs +++ b/插件库/Lskj.Control/TreeBandedGridControlEx.cs @@ -54,7 +54,7 @@ namespace Lskj.Control /// 获取模块配置 /// public ModuleModel moduleModel; - public TreeList TreeListObj { get { return gcMain; } } + public TreeList TreeListObj { get { return gcMain; } } /// /// 树表格固定菜单 @@ -81,6 +81,10 @@ namespace Lskj.Control /// private List DateColumnNames = new List(); + /// + /// 上次选中行 + /// + private int lastNodeIndex; public TreeBandedGridControlEx() { @@ -96,11 +100,47 @@ namespace Lskj.Control this.SetGridRowHeightAndFont(); } this.gcMain.PopupMenuShowing += new PopupMenuShowingEventHandler(OnPopupMenuShowing); + + this.gcMain.NodesReloaded += OnNodesReloaded; //InitializeTreeMethod(); //this.gcMain.OptionsBehavior.EnableFiltering = true; //this.gcMain.OptionsFind.AlwaysVisible = true; } + + /// + /// 节点加载完成后 + /// + /// + /// + private void OnNodesReloaded(object sender, EventArgs e) + { + //根据记录展开对应节点 + foreach (TreeListNode treeListNode in treeListNodes) + { + TreeListNode treeListNode1 = this.gcMain.Nodes.TreeList.FindNodeByID(treeListNode.Id); + if (treeListNode1 != null) treeListNode1.Expanded = true; + } + this.TreeListObj.FocusedNode = this.TreeListObj.GetNodeByVisibleIndex(lastNodeIndex); + if ((Expansion + "").Equals("1")) + { + this.gcMain.ExpandAll(); + } + else if ((Expansion + "").Equals("2")) + { + this.gcMain.ExpandToLevel(0); + } + else if ((Expansion + "").Equals("3")) + { + this.gcMain.CollapseAll(); + } + + //if (selectRowHandler) + //{ + // this.TreeListObj.FocusedNode = this.TreeListObj.GetNodeByVisibleIndex(lastNodeIndex); + //} + } + /// /// 修改筛选框筛选日期类型列的条件(日期=xxx 替换wei 日期>=xxx && 日期 @@ -2041,6 +2081,10 @@ namespace Lskj.Control this.gcMain.Columns.Clear(); } TreeListNode lastNode = this.TreeListObj.FocusedNode; + + lastNodeIndex = 0; + if (selectRowHandler) lastNodeIndex = this.TreeListObj.GetVisibleIndexByNode(this.TreeListObj.FocusedNode); + GetTreeExpanded(); this.gcMain.DataSource = table; this.SetAutoColumns(); @@ -2064,6 +2108,10 @@ namespace Lskj.Control this.gcMain.Columns.Clear(); } TreeListNode lastNode = this.TreeListObj.FocusedNode; + + lastNodeIndex = 0; + if (selectRowHandler) lastNodeIndex = this.TreeListObj.GetVisibleIndexByNode(this.TreeListObj.FocusedNode); + this.AdapterObj = adapter; DataSet dataSet = new DataSet(); //adapter.Fill(dataSet, "SetGridViewDataSource"); diff --git a/插件库/Lskj.Control/TreeGridControlEx.cs b/插件库/Lskj.Control/TreeGridControlEx.cs index cf90085..742bdb3 100644 --- a/插件库/Lskj.Control/TreeGridControlEx.cs +++ b/插件库/Lskj.Control/TreeGridControlEx.cs @@ -50,7 +50,7 @@ namespace Lskj.Control /// public partial class TreeGridControlEx : GridControlEx { - public TreeList TreeListObj { get { return gcMain; } } + public TreeList TreeListObj { get { return gcMain; } } /// /// 树表格固定菜单 @@ -72,7 +72,7 @@ namespace Lskj.Control /// /// 上次选中行 /// - private int lastNodeIndex; + private int lastNodeIndex; /// /// 日期类型控件名称 @@ -2501,11 +2501,11 @@ namespace Lskj.Control } } } - DbCommandBuilder cb = SqlHelper.dbFactory.CreateCommandBuilder(); cb.DataAdapter = this.AdapterObj; //SqlCommandBuilder cb = new SqlCommandBuilder(this.AdapterObj); + GetTreeExpanded(); this.gcMain.DataSource = dataSet.Tables[0]; @@ -3875,7 +3875,7 @@ namespace Lskj.Control /// /// /// - private void TreeListObj_CustomDrawNodeIndicator(object sender, CustomDrawNodeIndicatorEventArgs e) + private void TreeListObj_CustomDrawNodeIndicator(object sender, CustomDrawNodeIndicatorEventArgs e) { try {