0

所以,这就是我正在做的事情。我有一个 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>

这是 web.sitemap:

<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 结合起来,并填充此地图的子树。例如,“项目”、“实验”、“细胞系”和“药物配方”节点各有一个从数据库填充的子树。任何人都有意见或建议从哪里开始寻找?

总之 - 我想将叶子 siteMapNodes 指向一个 SiteMapProvider。

4

1 回答 1

0

解决方案:

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

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

<siteMapNode provider="DrugListProvider"/>

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

<siteMap>
  <providers>
    <add name="DrugListProvider" type="PrivoWeb.DrugListProvider"/>
  </providers>
</siteMap>
于 2012-06-13T18:28:24.907 回答