我正在尝试动态填充sharepoint webpart上的treeview对象。出于某种原因,节点填充会自动触发,无需用户输入。下面是我如何设置树和webpart的示例。
任何有关如何防止自动填充的建议都将受到赞赏。
以下是createchildcontrols方法:
this.Tree = new TreeView();
this.Tree.EnableClientScript = false;
this.Tree.PopulateNodesFromClient = true;
this.Tree.Nodes.Add(this.FetchTreeNode());
this.Tree.TreeNodePopulate += new TreeNodeEventHandler(Tree_TreeNodePopulate);
处理程序如下所示:
void Tree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
List<MyNode> children = this.FetchChildren(e.Node.Value);
foreach (MyNode child in children)
{
TreeNode node = new TreeNode(child.Name, child.UniqueId, child.IconPath);
node.PopulateOnDemand = true;
node.SelectAction = TreeNodeSelectAction.Expand;
e.Node.ChildNodes.Add(node);
}
}
我很长时间以来一直在讨论这个问题,任何建议都会受到赞赏。
答案 0 :(得分:0)
所以我终于弄明白......出于某种原因,树视图的默认行为是要扩展的,所以它会立即调用treenode populate函数。我可以通过调用treeview.collapseall()方法来实现这一点。