如何获取所有选中的项目但是要用子项目排除主节点?
例如,看看这张图片:
我希望获得所有选中的项目,但要将marekd排除在黄色之外,但仍然要列出其子项目。
到目前为止,我做到了这一点:
xmlhttp.send("orderID="+orderID);
答案 0 :(得分:1)
您可以使用Descendants
扩展程序获取{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}
或TreeView
的后代。然后在获取节点之后,可以使用where子句来过滤那些具有子节点的节点:
TreeNode
有关详细信息,请参阅以下帖子:
var result = treeView1.Descendants().Where(x=>x.Checked && x.Nodes.Count==0).ToList();
或TreeView
TreeNode
答案 1 :(得分:1)
一个简单的递归应该像这样做(只是草图,未经测试):
void Main()
{
var startingNode = <root/first node of the treeview>;
var aResult = new List<String>();
CheckedNames(startingNode, aResult);
}
void CheckedNames(TreeNode node, List<String> result)
{
do
{
if (node.FirstNode != null)
{
CheckedNames(node.FirstNode, result);
}
else
{
if (node.Checked)
{
// use your regex here
result.Add(node.Text);
}
}
node = node.NextNode;
} while (node != null);
}
希望它有所帮助。