2011-12-02 94 views
1

是否可以將LoginStatus控件添加爲asp.net菜單項? 我用下面的代碼嘗試:將LoginStatus控件添加到ASP.NET菜單

LoginStatus ls = new LoginStatus(); 
TopNavigationMenu.Controls.Add(ls); 

感謝 達倫。

+0

你想顯示'根節點LoginStatus'? –

回答

0

所有你需要的是把網頁上LoginStatus控件與Visible="False",設置其LoggingOut事件,並使用此代碼:

/// <summary> 
/// Adds last menu item with logout link. 
/// Main menu is configured to use SiteMapDataSource. 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
protected void mainMenu_DataBound(object sender, EventArgs e) 
{ 
    MenuItem loginMenuItem = 
     new MenuItem(
      LoginStatus1.LogoutText, 
      "logout", 
      LoginStatus1.LogoutImageUrl, 
      ClientScript.GetPostBackClientHyperlink(LoginStatus1.Controls[0], null)); 

    mainMenu.Items.Add(loginMenuItem); 
} 

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    // required by ASP.NET to pass EnableEventValidation on page as our composed link 
    // will postback from other control not original LoginStatus 
    ClientScript.RegisterForEventValidation(LoginStatus1.Controls[0].UniqueID); 

    base.Render(writer); 
}