SVN-Revision: r256
This commit is contained in:
tdx
2025-02-08 06:16:29 +00:00
parent 6a9578199c
commit 5ed2b8fa3f
+84 -59
View File
@@ -122,7 +122,7 @@ namespace Lskj.Control
lengthLimitation = int.Parse(TreeNodeLength);
treeTable = treeTable.Rows.Cast<DataRow>().Where(y => !string.IsNullOrEmpty(y[TreeNodeKeyField] + "") && (y[TreeNodeKeyField] + "").Length <= lengthLimitation).OrderBy(x => x[TreeNodeKeyField]).CopyToDataTable();
}
Dictionary<string, List<TreeNode>> nodesDic = new Dictionary<string, List<TreeNode>>();
for (int i = 0; i < treeTable.Rows.Count; i++)
{
DataRow dr = treeTable.Rows[i];
@@ -131,53 +131,97 @@ namespace Lskj.Control
if (SystemInfo.Instance.TreeSpecialBinding && treeTable.Columns.Contains("pid"))
{
string pKey = dr["pid"]+"";
string pKey = dr["pid"] + "";
//pKey = pKey.Substring(0, pKey.Length - 1);
TreeNode[] nodes = tvMain.Nodes.Find(pKey, true);
if (nodes.Count() > 0)
{
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(tNode);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(tNode);
nodesDic.Add(tnKey, childNodesList);
}
tNode.Tag = tnKey;
}
else
{
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
if (!nodesDic.ContainsKey(tnKey))
{
nodesDic.Add(tnKey, new List<TreeNode>());
}
tNode.Tag = tnKey;
}
}
else
else
{
if (tnKey.Length >= TreeDigit * 2)
{
string pKey = tnKey.Substring(0, tnKey.Length - TreeDigit);
//List<TreeNode> nodes = nodesDic.ContainsKey(pKey) ? nodesDic[pKey] : new List<TreeNode>();
TreeNode[] nodes = tvMain.Nodes.Find(pKey, true);
if (nodes.Count() > 0)
{
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(tNode);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(tNode);
nodesDic.Add(tnKey, childNodesList);
}
tNode.Tag = tnKey;
}
else
{
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(tNode);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(tNode);
nodesDic.Add(tnKey, childNodesList);
}
tNode.Tag = tnKey;
}
}
else
{
TreeNode node = tvMain.Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(node);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(node);
nodesDic.Add(tnKey, childNodesList);
}
node.Tag = tnKey;
}
}
}
if (!string.IsNullOrWhiteSpace(TreeNodeLength))
{
treeTable = treeTableNew.Copy();
treeTable = treeTable.Rows.Cast<DataRow>().Where(y => !string.IsNullOrEmpty(y[TreeNodeKeyField] + "") && (y[TreeNodeKeyField] + "").Length > lengthLimitation).OrderBy(x => x[sort]).CopyToDataTable();
for (int i = 0; i < treeTable.Rows.Count; i++)
{
DataRow dr = treeTable.Rows[i];
@@ -185,7 +229,6 @@ namespace Lskj.Control
string tnStr = dr[TreeNodeTextField] + "";
string tnKeyNew = tnKey.Substring(0, lengthLimitation);
string sortValue = dr[sort] + "";
if (!sortValue.Contains("-"))
{
//没有包含 - ,直接加入指定位数的节点中
@@ -193,14 +236,28 @@ namespace Lskj.Control
if (nodes.Count() > 0)
{
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(tNode);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(tNode);
nodesDic.Add(tnKey, childNodesList);
}
tNode.Tag = tnKey;
}
else
{
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
if (!nodesDic.ContainsKey(tnKey))
{
nodesDic.Add(tnKey, new List<TreeNode>());
}
tNode.Tag = tnKey;
}
}
else
{
@@ -215,30 +272,35 @@ namespace Lskj.Control
if (nodes.Count() > 0)
{
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
if (nodesDic.ContainsKey(tnKey))
{
List<TreeNode> childNodesList = nodesDic[tnKey];
childNodesList.Add(tNode);
}
else
{
List<TreeNode> childNodesList = new List<TreeNode>();
childNodesList.Add(tNode);
nodesDic.Add(tnKey, childNodesList);
}
tNode.Tag = tnKey;
}
else
{
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
if (!nodesDic.ContainsKey(tnKey))
{
nodesDic.Add(tnKey, new List<TreeNode>());
}
tNode.Tag = tnKey;
}
}
}
//TreeNode[] nodes = tvMain.Nodes.Find(tnKeyNew, true);
}
}
}
this.tvMain.EndUpdate();
// 默认展开第一个节点
if (this.tvMain.Nodes.Count > 0)
this.tvMain.Nodes[0].Expand();
@@ -445,7 +507,7 @@ namespace Lskj.Control
tNode.Tag = tnKey;
}
}
else
else
{
if (tnKey.Length > SpecNoLen)
{
@@ -1001,41 +1063,4 @@ namespace Lskj.Control
if (node.Parent != null)
{
node.Expand();
ExpandNode(node.Parent);
}
}
//获得符合条件的节点
private void SearchLayernew(TreeNode node, string name)
{
//node.BackColor = Color.White;
//node.ForeColor = Color.Black;
if (string.Equals(node.Text, name) || node.Text.Contains(name))
{
searchtreeNodes.Add(node);
}
if (node.Nodes.Count != 0)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
SearchLayernew(node.Nodes[i], name);
}
}
}
/// <summary>
/// 搜索框回车事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txt_Key_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
BtnSearch_Click(null, null);
}
}
}
}
ExpandNode(