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