2016-09-15 4 views
0

私はasp.net C#webformsプロジェクトに取り組んでいます。マスターページには、マスターページのページロードイベントで動的に取り込むメニューコントロールがあります。ページにアクセスすると、メニュー内の項目をループし、URLがメニューにない場合はログインページにリダイレクトします。私は、コンテンツページが派生するカスタムベースページクラスのpage_Loadイベントでこれをやっています。私が抱えている問題は、メニューの項目数がゼロになることです。以下は、私のコードです:動的にロードされたasp.netメニューコントロールをループしていくつかの項目を削除するにはどうすればいいですか?

<asp:Menu ID="menuBarMaster" runat="server" Orientation="Horizontal" Width="100%" 
      CssClass="MenuBarMaster" MaximumDynamicDisplayLevels="10" ClientIDMode="Static">    
      <StaticMenuStyle CssClass="staticMenuItem" /> 
      <StaticHoverStyle CssClass="staticHoverStyle"></StaticHoverStyle>    
      <StaticMenuItemStyle CssClass="staticMenuItemStyle" /> 
      <StaticSelectedStyle CssClass="staticSelectedStyle" />    
      <DynamicMenuItemStyle CssClass="dynamicMenuItemStyle" /> 
      <DynamicHoverStyle CssClass="dynamicHoverStyle" /> 
      <DynamicMenuStyle CssClass="dynamicMenuStyle" /> 
     </asp:Menu> 

protected override void OnLoad(EventArgs e) 
    { 
     var url = HttpContext.Current.Request.Url; 
     var menu = this.Master.FindControl("menuBarMaster") as Menu; 
     if (menu != null) 
     { 
      if (menu.Items.Count > 0) 
      { 
       //loop through the items 
     //But this is never reached as the menu.Items.Count equals to 0 
      } 
     } 
     base.OnLoad(e); 
    } 

答えて

関連する問題