2011-12-02 4 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); 
} 
Смежные вопросы