0
我的页面上有一个ASP.NET treeview。在我隐藏我有以下方法:ASP.NET Treeview控件总是将节点附加到CheckedNodes列表中
public string GetSelectedTreeValues(TreeView tv)
{
string taxVal = string.Empty;
StringBuilder textBuilder = new StringBuilder();
string lists = string.Empty;
string cleanedlists = string.Empty;
try
{
TreeNodeCollection checkedNodes = tv.CheckedNodes;
foreach (TreeNode tn in checkedNodes)
{
lists = textBuilder.Append(tn.ValuePath + ",").ToString();
}
// removing any trailing commas
cleanedlists = lists.Substring(0, lists.Trim().Length - 1);
}
catch (Exception ex)
{
new ApplicationException("Error: Getting Tree Nodes", ex);
}
return cleanedlists;
}
问题是,当我做了回发,如果我改变我选择的价值,他们总是追加到值列表。我认为值的列表应该清除,然后重置为新的值。
我已经浏览了代码,发现CheckedNodes属性始终将我检查的节点追加到列表中,而不删除未经检查的节点。
谢谢,JBL更换try块内容!你的解决方案工作 - 现在我可以使用valuepaths设置跨回发检查节点! :D(这是我需要完成的) – Tim 2012-03-20 17:48:05
我说得太快了......看起来我*仍然*结束了添加到CheckedNodes集合的树视图,无论我做什么。这使我疯狂 - 为什么当我取消选中框时值不会更新? – Tim 2012-03-20 19:28:37
@Tim:问题似乎不在代码的这一部分。你能否将其他部分相对于你的treeview发布? – jbl 2012-03-21 08:09:42