如何在 ASP.NET 中结合web.sitemap和SiteMapProvider



所以,这就是我正在做的事情。我有一个 ASP.NET 的Web应用程序,其中站点地图通过web.sitemap显示在site.master文件上。这是site.master:

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView
 ID="TreeView1"
 runat="server"
 ataSourceID="SiteMapDataSource1"
 ExpandDepth="1">
    </asp:TreeView>

这是网站地图:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="~/Default.aspx" title="Home"  description="Home">        
      <siteMapNode url="" title="Projects"  description="">        
      </siteMapNode>
      <siteMapNode url="" title="Configurations"  description="Configurations">
        <siteMapNode url="" title="Experiments" description="Experiments">
        </siteMapNode>
        <siteMapNode url="" title="Cell Line" description =""></siteMapNode>
        <siteMapNode url ="" title ="Drugs">
        </siteMapNode>
        <siteMapNode url ="" title="Manage Configurations" />
          <siteMapNode url="~/ExperimentConfigurationView.aspx" title ="Configure Experiements"/>
          <siteMapNode url="~/DrugConfigurationView.aspx" title="Configure Drugs"/>
        </siteMapNode>
      </siteMapNode>
      <siteMapNode url="" title="Drug Recipes" description="">
      </siteMapNode>
    </siteMapNode>
</siteMap>

现在,这就是我遇到问题的地方。我想做的是将此站点地图与动态创建的SiteMapProvider相结合,并填充此地图的子树。例如,"项目"、"实验"、"细胞系"和"药物配方"节点各有一个从日期库填充的子树。有人有意见,或者建议从哪里开始寻找?

总之 - 我想将叶站点地图节点指向SiteMapProvider。

解决方案:

我在根目录中添加了一个文件DrugListProvider.cs。其中包含用于动态生成子树的代码。

我将以下节点放在 Web.sitemap 中,我希望子树出现的位置:

<siteMapNode provider="DrugListProvider"/>

最后,我将其包含在 web.config 文件中:

<siteMap>
  <providers>
    <add name="DrugListProvider" type="PrivoWeb.DrugListProvider"/>
  </providers>
</siteMap>

相关内容

  • 没有找到相关文章