C# ASP.NET中的动态面包屑
我有一个关于面包屑导航的问题。 在我的应用程序中,我有一个Start.aspx,其中我为下一个模块(control1.ascx、control2.ascx,…)构建了一个导航菜单,该模块应在单击后加载。 此ascx包含一个网格,其中包含一些数据行和链接按钮,用于在起始页上加载其他ascx 这是应用程序的常见工作方式 现在我需要将哪个ascx加载到面包屑中 也许我们可以像这样将其可视化: Start.aspx->control1.ascx->control1\u 1.ascx 现在,应用程序将处于最低级别,如果我单击“control1.ascx”,则应再次加载此控件,或者如果我选择Start.aspx,则应加载“Home”C# ASP.NET中的动态面包屑,c#,asp.net,C#,Asp.net,我有一个关于面包屑导航的问题。 在我的应用程序中,我有一个Start.aspx,其中我为下一个模块(control1.ascx、control2.ascx,…)构建了一个导航菜单,该模块应在单击后加载。 此ascx包含一个网格,其中包含一些数据行和链接按钮,用于在起始页上加载其他ascx 这是应用程序的常见工作方式 现在我需要将哪个ascx加载到面包屑中 也许我们可以像这样将其可视化: Start.aspx->control1.ascx->control1\u 1.ascx 现在,应用程序将处于
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 + " " + "</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] + " " + "</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());
}
受保护的覆盖无效渲染(HtmlTextWriter输出)
{
NavigationDataTable moduleNameList=新的NavigationDataTable();
List ModuleList=moduleNameList.GetModuleList(1,LoggedInUser);
StringBuilder sbResult1=新的StringBuilder();
//字符串sbResult;
如果(第页项目[“标题”]!=null)
{
字符串id=Page.Items[“title”].ToString();
PageTitle=Page.Items[“title”].ToString();
}
//------------------------------------------------------------------------------------------
var request=HttpContext.Current.request;
System.Collections.Specialized.NameValueCollection coll;
//将ServerVariable集合加载到NameValueCollection对象中。
coll=request.ServerVariables;
字符串serverName=request.ServerVariables[“服务器名称”];
//------------------------------------------------------------------------------------------
字符串strDomain=“”;
如果(服务器名=“本地主机”)
{
//洛卡尔
strDomain=“localhost:49573”;
}
其他的
{
//内部网
strDomain=“i”;
}
字符串strURL=“/Start.aspx”;
字符串strDirs=“control1.ascx”;
分离器3=新图像();
分离器3.高度=52;
分离器3.宽度=52;
箭头分隔符=新图像();
arrowselector.ImageUrl=“/img/mb_arrow_separator.png”;
HomeSymbol=新图像();
HomeSymbol.ImageUrl=“/img/mb_home.png”;
//开始时的主页导航
sbResult1.追加(“”);
sbResult1.追加(“”);
sbResult1.追加(“”);
//-------------------------------------------------------------------------------------------------------------------------------
foreach(模块列表中的变量项)
{
if(HttpContext.Current.Session[“ModuleTitle”]!=null)
{
if(item.ModuleTitle==HttpContext.Current.Session[“ModuleTitle”].ToString())
{
//sbResult1.追加(“+”分隔符);
Separator3.ImageUrl=“/img/”+HttpContext.Current.Session[“ModuleTitle”].ToString()+“.png”;
sbResult1.追加(“”);
sbResult1.Append(HttpContext.Current.Session[“ModuleTitle”]).ToString();
}
}
}
如果(!ModuleList.Contains(HttpContext.Current.Session[“ModuleTitle”]))
{
if(HttpContext.Current.Session[“ModuleTitle”]!=null)
{
if(HttpContext.Current.Session[“ModuleTitle”].ToString()包含(“”)/| | HttpContext.Current.Session[“ModuleSubTitle”]!=null)
{
string[]std=HttpContext.Current.Session[“ModuleTitle”].ToString().Split(“”“);
Separator3.ImageUrl=“/img/”+std[0]+“.png”;
sbResult1.追加(“”);
sbResult1.追加(“”);
sbResult1.追加(“”);
sbResult1.追加(“”);
sbResult1.追加(标准[1]);
}
}
}
//-------------------------------------------------------------------------------------------------------------------------------
output.Write(sbResult1.ToString());
}
我是否必须制作这个Breadcrumb.cs并覆盖Render(),或者有更好的方法
欢迎DarkGecko您考虑过站点地图路径吗
<asp:SiteMapPath ID="SiteMapPath1" Runat="server"></asp:SiteMapPath>