您的位置:首页 > 运维架构

[DevExpress]利用TreeListOperation获取勾选的节点集合

2013-08-13 15:24 591 查看
public class TreeListCheckedNodesOperation : TreeListOperation
{
private IDictionary<TreeListNode, IList<TreeListNode>> _checkedNodes = null;
public TreeListCheckedNodesOperation()
{
_checkedNodes = new Dictionary<TreeListNode, IList<TreeListNode>>();
}
public override void Execute(TreeListNode node)
{
if (node.Checked)
SaveNodeRelationship(node);
}
private void SaveNodeRelationship(TreeListNode _currentNode)
{
if (_currentNode == null) return;
NodeType _nodeType = (NodeType)_currentNode.Tag;
lock (((ICollection)_checkedNodes).SyncRoot)
{
if (_nodeType == NodeType.Ch)//若为子节点
ProcessChildNode(_currentNode);
if (_nodeType == NodeType.Cab)//若为父节点
ProcessParentNode(_currentNode);
}
}
private void ProcessParentNode(TreeListNode _currentNode)
{
if (!_checkedNodes.ContainsKey(_currentNode))
_checkedNodes.Add(_currentNode, new List<TreeListNode>());
}
private void ProcessChildNode(TreeListNode _currentNode)
{
TreeListNode _parentNode = _currentNode.ParentNode;
if (_parentNode != null)
{
IList<TreeListNode> _childNodes = null;
if (_checkedNodes.ContainsKey(_parentNode))
{
_childNodes = _checkedNodes[_parentNode];
if (_childNodes == null)
_childNodes = new List<TreeListNode>();
}
else
{
_childNodes = new List<TreeListNode>();
}
_childNodes.Add(_currentNode);
_checkedNodes[_parentNode] = _childNodes;
}
}
public IDictionary<TreeListNode, IList<TreeListNode>> CheckedNodes
{
get
{
return _checkedNodes;
}
}
}


.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: