Как связать SiteMap с динамично созданным TreeView?

Разработчик Flex действительно полезен, если Ваше приложение включает партию GUI. Это предоставляет Вам, хороший IDE действительно тянет GUI. Если Вы просто создаете actionscript, который преобразовывает к swf, Вам не нужен Разработчик Flex. SDK Flex с Вашим любимым редактором достаточно.

Вам, вероятно, придется изучить DTD Actionscript и MXML.

5
задан Ahmed 2 August 2009 в 11:01
поделиться

1 ответ

Есть несколько способов сделать это.

Поместите PlaceHolder на страницу:

  <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" />

Или вы можете назначить SiteMap программно:

  // 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);

Установка SiteMap программно также позволяет вам переключать файлы на основе бизнес-правил.

Это также можно сделать через 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"  />

Надеюсь, это поможет

11
ответ дан 13 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: