SVN r256
SVN-Revision: r256
This commit is contained in:
@@ -122,7 +122,7 @@ namespace Lskj.Control
|
|||||||
lengthLimitation = int.Parse(TreeNodeLength);
|
lengthLimitation = int.Parse(TreeNodeLength);
|
||||||
treeTable = treeTable.Rows.Cast<DataRow>().Where(y => !string.IsNullOrEmpty(y[TreeNodeKeyField] + "") && (y[TreeNodeKeyField] + "").Length <= lengthLimitation).OrderBy(x => x[TreeNodeKeyField]).CopyToDataTable();
|
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++)
|
for (int i = 0; i < treeTable.Rows.Count; i++)
|
||||||
{
|
{
|
||||||
DataRow dr = treeTable.Rows[i];
|
DataRow dr = treeTable.Rows[i];
|
||||||
@@ -131,53 +131,97 @@ namespace Lskj.Control
|
|||||||
|
|
||||||
if (SystemInfo.Instance.TreeSpecialBinding && treeTable.Columns.Contains("pid"))
|
if (SystemInfo.Instance.TreeSpecialBinding && treeTable.Columns.Contains("pid"))
|
||||||
{
|
{
|
||||||
string pKey = dr["pid"]+"";
|
string pKey = dr["pid"] + "";
|
||||||
//pKey = pKey.Substring(0, pKey.Length - 1);
|
//pKey = pKey.Substring(0, pKey.Length - 1);
|
||||||
TreeNode[] nodes = tvMain.Nodes.Find(pKey, true);
|
TreeNode[] nodes = tvMain.Nodes.Find(pKey, true);
|
||||||
if (nodes.Count() > 0)
|
if (nodes.Count() > 0)
|
||||||
{
|
{
|
||||||
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
|
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;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
||||||
|
if (!nodesDic.ContainsKey(tnKey))
|
||||||
|
{
|
||||||
|
nodesDic.Add(tnKey, new List<TreeNode>());
|
||||||
|
}
|
||||||
tNode.Tag = tnKey;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (tnKey.Length >= TreeDigit * 2)
|
if (tnKey.Length >= TreeDigit * 2)
|
||||||
{
|
{
|
||||||
string pKey = tnKey.Substring(0, tnKey.Length - TreeDigit);
|
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);
|
TreeNode[] nodes = tvMain.Nodes.Find(pKey, true);
|
||||||
if (nodes.Count() > 0)
|
if (nodes.Count() > 0)
|
||||||
{
|
{
|
||||||
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
|
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;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
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;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TreeNode node = tvMain.Nodes.Add(tnKey, tnStr);
|
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;
|
node.Tag = tnKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(TreeNodeLength))
|
if (!string.IsNullOrWhiteSpace(TreeNodeLength))
|
||||||
{
|
{
|
||||||
treeTable = treeTableNew.Copy();
|
treeTable = treeTableNew.Copy();
|
||||||
treeTable = treeTable.Rows.Cast<DataRow>().Where(y => !string.IsNullOrEmpty(y[TreeNodeKeyField] + "") && (y[TreeNodeKeyField] + "").Length > lengthLimitation).OrderBy(x => x[sort]).CopyToDataTable();
|
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++)
|
for (int i = 0; i < treeTable.Rows.Count; i++)
|
||||||
{
|
{
|
||||||
DataRow dr = treeTable.Rows[i];
|
DataRow dr = treeTable.Rows[i];
|
||||||
@@ -185,7 +229,6 @@ namespace Lskj.Control
|
|||||||
string tnStr = dr[TreeNodeTextField] + "";
|
string tnStr = dr[TreeNodeTextField] + "";
|
||||||
string tnKeyNew = tnKey.Substring(0, lengthLimitation);
|
string tnKeyNew = tnKey.Substring(0, lengthLimitation);
|
||||||
string sortValue = dr[sort] + "";
|
string sortValue = dr[sort] + "";
|
||||||
|
|
||||||
if (!sortValue.Contains("-"))
|
if (!sortValue.Contains("-"))
|
||||||
{
|
{
|
||||||
//没有包含 - ,直接加入指定位数的节点中
|
//没有包含 - ,直接加入指定位数的节点中
|
||||||
@@ -193,14 +236,28 @@ namespace Lskj.Control
|
|||||||
if (nodes.Count() > 0)
|
if (nodes.Count() > 0)
|
||||||
{
|
{
|
||||||
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
|
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;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
||||||
|
if (!nodesDic.ContainsKey(tnKey))
|
||||||
|
{
|
||||||
|
nodesDic.Add(tnKey, new List<TreeNode>());
|
||||||
|
}
|
||||||
tNode.Tag = tnKey;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -215,30 +272,35 @@ namespace Lskj.Control
|
|||||||
if (nodes.Count() > 0)
|
if (nodes.Count() > 0)
|
||||||
{
|
{
|
||||||
TreeNode tNode = nodes[0].Nodes.Add(tnKey, tnStr);
|
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;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
TreeNode tNode = this.TreeView.Nodes.Add(tnKey, tnStr);
|
||||||
|
if (!nodesDic.ContainsKey(tnKey))
|
||||||
|
{
|
||||||
|
nodesDic.Add(tnKey, new List<TreeNode>());
|
||||||
|
}
|
||||||
tNode.Tag = tnKey;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//TreeNode[] nodes = tvMain.Nodes.Find(tnKeyNew, true);
|
//TreeNode[] nodes = tvMain.Nodes.Find(tnKeyNew, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
this.tvMain.EndUpdate();
|
this.tvMain.EndUpdate();
|
||||||
|
|
||||||
// 默认展开第一个节点
|
// 默认展开第一个节点
|
||||||
if (this.tvMain.Nodes.Count > 0)
|
if (this.tvMain.Nodes.Count > 0)
|
||||||
this.tvMain.Nodes[0].Expand();
|
this.tvMain.Nodes[0].Expand();
|
||||||
@@ -445,7 +507,7 @@ namespace Lskj.Control
|
|||||||
tNode.Tag = tnKey;
|
tNode.Tag = tnKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (tnKey.Length > SpecNoLen)
|
if (tnKey.Length > SpecNoLen)
|
||||||
{
|
{
|
||||||
@@ -1001,41 +1063,4 @@ namespace Lskj.Control
|
|||||||
if (node.Parent != null)
|
if (node.Parent != null)
|
||||||
{
|
{
|
||||||
node.Expand();
|
node.Expand();
|
||||||
ExpandNode(node.Parent);
|
ExpandNode(
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//获得符合条件的节点
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user