2017-12-08 9 views
1

パンくずリストのナビゲーションに関する問題があります。 私のアプリケーションでは、次のモジュール(control1.ascx、control2.ascx、...)のナビゲーションメニューをビルドするStart.aspxがあります。このモジュールは、クリック後にロードする必要があります。 このascxには、スタートページに他のascxをロードするためのデータ行とリンクボタンが付いたグリッドが含まれています これはアプリケーションの一般的な動作です。ASP.NETの動的ブレッドクラム

今私は多分、私たちはこのようにそれをviaualizeできるブレッドクラム にロードされたASCX視覚化する必要があります。

Start.aspx - 今> control1_1.ascx

アプリを - > control1.ascx "control1.ascx"をクリックすると、このコントロールを再度ロードするか、Start.aspxを選択すると、 "Home"が読み込まれます。

protected override void Render(HtmlTextWriter output) 
    { 

     NavigationDataTable moduleNameList = new NavigationDataTable(); 
     List<usp_GetNavigationElements_Result> ModuleList = moduleNameList.GetModulesList(1, LoggedInUser); 
     StringBuilder sbResult1 = new StringBuilder(); 
     //string sbResult; 



     if (Page.Items["title"] != null) 
     { 
      string id = Page.Items["title"].ToString(); 
      PageTitle = Page.Items["title"].ToString(); 
     } 

     //------------------------------------------------------------------------------------------ 

     var request = HttpContext.Current.Request; 
     System.Collections.Specialized.NameValueCollection coll; 
     // Load ServerVariable collection into NameValueCollection object. 
     coll = request.ServerVariables;    
     string serverName = request.ServerVariables["SERVER_NAME"]; 

     //------------------------------------------------------------------------------------------ 

     string strDomain = ""; 
     if (serverName == "localhost") 
     { 
      //Lokal 
      strDomain = "localhost:49573"; 
     } 
     else 
     { 
      //Intranet 
      strDomain = "i"; 
     } 

     string strURL = "/Start.aspx"; 
     string strDirs = "control1.ascx"; 

     Separator3 = new Image();    

     Separator3.Height = 52; 
     Separator3.Width = 52; 

     ArrowSeparator = new Image(); 
     ArrowSeparator.ImageUrl = "/img/mb_arrow_separator.png"; 

     HomeSymbol = new Image(); 
     HomeSymbol.ImageUrl = "/img/mb_home.png"; 


     // Home-Navigation for Start   
     sbResult1.Append("<img src='" + HomeSymbol.ImageUrl + "'>");    
     sbResult1.Append("<a href='http://" + strDomain + "/modules" + strURL + "'style='text-decoration:none;'>" + RootName + "&nbsp;" + "</a>"); 
     sbResult1.Append("<img src='" + ArrowSeparator.ImageUrl + "' hspace='10'>"); 

     //------------------------------------------------------------------------------------------------------------------------------- 

     foreach (var item in ModuleList) 
     { 
      if (HttpContext.Current.Session["ModuleTitle"] != null) 
      {     
       if (item.ModuleTitle == HttpContext.Current.Session["ModuleTitle"].ToString()) 
       { 
        //sbResult1.Append("<a href='http://" + strDomain + "/modules" + strURL + "?" + item.ModuleName + "'>" + item.ModuleTitle + "</a>" + Separator); 

        Separator3.ImageUrl = "/img/" + HttpContext.Current.Session["ModuleTitle"].ToString() + ".png"; 
        sbResult1.Append("<img src='" + Separator3.ImageUrl + " 'hspace='10'>"); 
        sbResult1.Append(HttpContext.Current.Session["ModuleTitle"]).ToString(); 
       }        
      } 
     } 
     if (!ModuleList.Contains(HttpContext.Current.Session["ModuleTitle"])) 
     { 

      if (HttpContext.Current.Session["ModuleTitle"] != null) 
      { 
       if (HttpContext.Current.Session["ModuleTitle"].ToString().Contains("_"))//|| HttpContext.Current.Session["ModuleSubTitle"] != null) 
       { 
        string[] std = HttpContext.Current.Session["ModuleTitle"].ToString().Split('_'); 

        Separator3.ImageUrl = "/img/" + std[0] + ".png"; 
        sbResult1.Append("<img src='" + Separator3.ImageUrl + "' hspace='10'>"); 
        sbResult1.Append("<a href='http://" + strDomain + "/modules" + strURL + "?" + std[0] + "'style='text-decoration:none;'>" + std[0] + "&nbsp;" + "</a>"); 
        sbResult1.Append("<img src='" + ArrowSeparator.ImageUrl + "' hspace='10'>"); 

        sbResult1.Append("<img src='/img/Prozess.png' hspace='10'>"); 

        sbResult1.Append(std[1]); 

       } 

      } 
     } 

     //-------------------------------------------------------------------------------------------------------------------------------    

     output.Write(sbResult1.ToString()); 
    } 

私は(このBreadcrumb.csを作るとレンダーオーバーライドする必要があり)、またはより良い方法があります。

挨拶DarkGecko

答えて

関連する問題