我试图弄清楚如何通过代码在asp.net webform中为子节点设置一个复选框。
我的方法:
protected void CreateTreeViewList(System.Web.UI.WebControls.Panel p, ICollection<Agency> a)
{
TreeView agencyTreeView = new TreeView();
var results = a;
foreach (var item in results)
{
TreeNode node = new TreeNode(item.AgencyName);
// var myagencies = item.SecurityDataShares1;
Array entityList = Enum.GetValues(typeof(Entities));
foreach (var ei in entityList)
{
node.ShowCheckBox = true;
node.ChildNodes.Add(new TreeNode(ei.ToString()));
}
node.ChildNodes.Add(new TreeNode());
agencyTreeView.Nodes.Add(node);
}
p.Controls.Add(agencyTreeView);
}
这是我在树视图控件中的第一次拍摄,所以它可能会稍微偏离(任何提示都会受到赞赏)。
我被困在嵌套的foreach上我可以得到节点渲染(实体List只是一个包含10个文本元素的数组)。我似乎无法弄清楚如何分配节目文本框
我试过
node.ChildNodes.Add(new TreeNode(ei.ToString()).ShowCheckbox = true);
虽然intellisense支持它,但编译器抛出了错误。
另外作为旁注,我注意到复选框列表显示节点为链接有没有办法禁用它?
提前致谢,
答案 0 :(得分:0)
经过一些搜索后,我发现了TreeNodeTypes属性
将以下行添加到下面方法的末尾或p.Controls.Add(agencyTreeView)
为每个子节点添加了复选框
agencyTreeView.ShowCheckBoxes = TreeNodeTypes.Leaf;
希望这有助于任何有兴趣的人