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