【发布时间】:2014-07-02 08:47:27
【问题描述】:
我尝试在 Treeview 的节点上显示图像。 Treeview 位于 ascx 控件中,因为我需要多次使用它。
我使用以下代码:
<asp:TreeView ID="FolderTree" runat="server" BackColor="White">
<NodeStyle ForeColor="Black" ImageUrl="~/App_GlobalResources/folderClosed.png" />
<ParentNodeStyle ImageUrl="~/App_GlobalResources/folderOpen.png" />
<RootNodeStyle ImageUrl="~/App_GlobalResources/folderOpen.png" />
</asp:TreeView>
这个代码似乎适合我,它也显示在设计器中。
但是当我启动页面时,没有显示一张图片。只有默认的折叠按钮可见。 我做错了什么?
非常感谢。
编辑:我添加了如何填充控件的代码
private void Page_Load(object sender, System.EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
var devData = Foo.GetDevices(); // returns a list with all devices
foreach (string temp in devData)
{
this.FolderTree.Nodes.Add(new TreeNode() { Text = temp, ImageUrl = "~/App_GlobalResources/folderOpen.png" });
}
}
}
catch(Exception error)
{
//errorhandling
}
}
编辑 2:我假设我有那个错误:forums.asp.net/t/943367.aspx 但建议的解决方案不起作用! (见上面的代码,我已经通过代码设置了值。有人知道解决方案/修补程序(在 webusercontrol(.ascx) 中使用)吗?
我也尝试过(在我的基础站点上):
protected override void OnSaveStateComplete(EventArgs e)
{
foreach (TreeNode tmpNode in this.LeftSelectControl.AccessFolderView.Nodes) //AccessFolderView = var, which contains the treeview of the ascx (to access it)
{
tmpNode.ImageUrl = "~/App_GlobalResources/folderOpen.png";
}
}
【问题讨论】:
-
如何填充树?
-
按代码。我可以添加它。等一下。
-
@Arion:我添加了基本代码。FileSystemInteract.GetDevices();返回一个包含所有当前连接的设备名称的列表(“C:\\”...等)如果用户折叠一个节点,有一个类似的方法可以添加包含文件夹的子节点。
标签: c# css asp.net iis treeview