【问题标题】:Use custom sitemap attribute as treeview node value使用自定义站点地图属性作为树视图节点值
【发布时间】:2015-12-17 15:32:05
【问题描述】:

我在我的 web.sitemap 中添加了一个自定义属性字段 PageID。我正在尝试在 TreeView 中显示我的站点地图,并且我想使用该字段作为树节点的值。我收到以下错误:

数据绑定 TreeView 时无法绑定到“PageID”属性(由 ValueField 指定)。请检查绑定字段。

如何将 TreeNode 值设置为站点地图中的自定义属性值?

web.sitemap

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  url="~/" title="Home" PageID="0">
    <siteMapNode url="" title="Security" PageID="1">
      <siteMapNode url="~/PageSecurity" title="Page Security" PageID="2"/>
      <siteMapNode url="~/UserSecurity" title="User Security" PageID="3"/>
    </siteMapNode>
  </siteMapNode>
</siteMap>

aspx 文件

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:TreeView ID="MenuTreeView" CssClass="SecurityTree" runat="server" DataSourceID="SiteMapDataSource1" ExpandDepth="0" OnSelectedNodeChanged="MenuTreeView_SelectedNodeChanged">
        <DataBindings>
            <asp:TreeNodeBinding NavigateUrl="" TextField="title" ValueField="PageID"/>
        </DataBindings>
    </asp:TreeView>
        <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
</asp:Content>

【问题讨论】:

    标签: c# treeview sitemap


    【解决方案1】:

    从一个有点相似的问题here 的答案开始,我终于能够完成这项工作。

    我从绑定 &lt;asp:TreeNodeBinding NavigateUrl="" TextField="title"/&gt; 中删除了 ValueField,然后在后面的代码中手动设置它。

    protected void Page_Load(object sender, EventArgs e)
    {
        MenuTreeView.TreeNodeDataBound += new TreeNodeEventHandler(MenuTreeView_DataBound);
    }
    
    protected void MenuTreeView_DataBound(object sender, TreeNodeEventArgs e)
    {
        SiteMapNode thisMapNode = (SiteMapNode)e.Node.DataItem;
        if (thisMapNode["PageID"] != null)
        {
            e.Node.Value = thisMapNode["PageID"];
        }
    }
    

    我现在有一个将我的站点地图显示为树的页面,并且在我的 SelectedNodeChanged 事件中MenuTreeView.SelectedValue 正确地具有我的自定义 PageID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 2012-04-05
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多