5
実行時に動的に作成されたTreeViewにSiteMapをバインドするにはどうすればよいですか?動的に作成されたTreeViewにSiteMapをバインドする方法は?
実行時に動的に作成されたTreeViewにSiteMapをバインドするにはどうすればよいですか?動的に作成されたTreeViewにSiteMapをバインドする方法は?
これを行うにはいくつかの方法があります。
ページにプレースホルダを置く:
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
を今すぐTreeViewコントロールを作成し、ページにすでにあるのSiteMapDataSourceを割り当てる:
//Code Behind
TreeView tv1 = new TreeView();
tv1.DataSourceID = "SiteMapDataSource1";
PlaceHolder1.Controls.Add(tv1);
//aspx
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
それとも、プログラムでサイトマップを割り当てることができます。
を// Create an instance of the XmlSiteMapProvider class.
XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();
NameValueCollection providerAttributes = new NameValueCollection(1);
providerAttributes.Add("siteMapFile", "Web2.sitemap");
// Initialize the provider with a provider name and file name.
testXmlProvider.Initialize("testProvider", providerAttributes);
// Call the BuildSiteMap to load the site map information into memory.
testXmlProvider.BuildSiteMap();
SiteMapDataSource smd = new SiteMapDataSource();
smd.Provider = testXmlProvider;
TreeView tv2 = new TreeView();
tv2.DataSource = smd;
tv2.DataBind(); //Important or all is blank
PlaceHolder1.Controls.Add(tv2);
プログラムでサイトマップを設定することで、ビジネスルールについて
これは、Web.Configを経由してもを行うことができます。
<configuration>
<!-- other configuration sections -->
<system.web>
<!-- other configuration sections -->
<siteMap>
<providers>
<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap" />
<add name="SiteMap2" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web2.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
、その後、あなたのaspxページにだけプロバイダを切り替える:
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" SiteMapProvider="SiteMap2" />
希望、これはあなたがまだ持っている、残念ながら
を支援しますサイトマップをファイルに保存します。 – tsilb
デフォルトでは、サイトマップファイルが必要です。ただし、動的に生成されたサイトマップを返すことができる独自のSiteMapProviderを実装することもできます。http://msdn.microsoft.com/en-us/library/aa479033.aspx - http://msdn.microsoft.com/en-us/library /aa479320.aspx。あなたはGoogleの "カスタムsitemapprovider"はそれについての多くの記事があります。 –