2011-08-24 69 views
1

我有一個asp.net網站用戶類型不同,如管理員,註冊用戶。每個用戶類型都有不同的菜單選項。asp.net sitemap改變運行時間

我已經爲所有類型的用戶創建了一個共同的母版頁,但爲不同的用戶類型設計了不同的網站地圖文件。

我想要做的是,根據用戶類型登錄後,網站地圖應在主頁面中更改。

這是我在母版頁加載中嘗試的代碼。它向我顯示錯誤,如

**The SiteMapProvider 'Principal.sitemap' cannot be found.** 

我嘗試過使用和不使用.sitemap擴展名。 (我有principal.sitemap和其他地圖)

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["usertype"] == null) 
     { 
      Response.Redirect("loginpage.aspx"); 
      return; 
     } 

     String usertype = Session["usertype"].ToString(); 

     if (usertype == "Principal") 
     { 
      SiteMapDataSource1.SiteMapProvider = "Principal.sitemap"; 
     } 
     else if (usertype == "Administrator") 
     { 

      //SiteMapDataSource1.SiteMapProvider = "Administrator"; 
     } 
     else if (usertype == "Student") 
     { 
      SiteMapDataSource1.SiteMapProvider = "Student"; 

     } 
     foo.DataBind(); 
} 

Here is my Master Page aspx code part. 

<asp:SiteMapDataSource ID="SiteMapDataSource1" ShowStartingNode="false" runat="server" /> 
       <ul id="cssmenu1"> 
        <li><a id="A1" href="index.aspx" runat="server">Home</a></li> 

        <asp:Repeater ID="foo" DataSourceID="SiteMapDataSource1" EnableViewState="false" 
            runat="server" onitemcommand="foo_ItemCommand"> 
         <ItemTemplate> 
          <li> 
           <a href='<%#Eval("url") %>'><%#Eval("Title") %></a> 

           <ul> 
            <asp:Repeater ID="bar" DataSource='<%# ((SiteMapNode) Container.DataItem).ChildNodes %>' runat="server"> 
             <ItemTemplate> 
              <li><a href='<%#Eval("url") %>'><%#Eval("Title") %></a></li> 
             </ItemTemplate> 
            </asp:Repeater> 
           </ul> 

          </li> 
         </ItemTemplate> 
        </asp:Repeater> 
       </ul> 
      </div> 
+0

你確定站點地圖的路徑是否正確? – Bobby

回答