[英]Custom Server Control: Inherited from Menu class, how and exactly what to render
我为所有应用程序构建了一个自定义控件,该控件将使用相应应用程序的名称来呈现菜单,并登录用户角色并相应地呈现菜单。 我正在使用一个已编写的javascript渲染菜单,该菜单从db以包含div和无序列表的html字符串的形式从数据库加载。 现在,要解决原始问题,以前我用Panel类继承了控件,该类在html中呈现为div,我只是将生成的HTML编写在继承的panel容器中。 现在,我想将控件与已经具有站点地图的网站集成在一起。 为此,我从Menu类继承了控件,现在我很困惑如何呈现html菜单。 下面粘贴了我以前如何渲染的代码。
[DefaultProperty("Text")]
[ToolboxData(@"<{0}:MenuControl runat=""server"" \>")]
public class MenuControl : Panel
{
.
.
.
.
.
#region Loading Resources On PreRender
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (string.IsNullOrEmpty(this.DataSourceID))
{
ClientScriptManager cs = this.Page.ClientScript;
#region Loading JavaScript File(s)
#endregion
#region Loading CSS File(s)
#endregion
#region Loading Image(s)
#endregion
}
}
#endregion
#region Rendering Final Contents
protected override void RenderContents(HtmlTextWriter output)
{
string Menus = string.Empty;
//Where as Menus contain menu in an html structure of ordered list.
Menus = GetMenuForAppOnUser();
output.Write(Menus);
}
#endregion
.
.
.
.
}
现在,由于它是与Panel一起继承的,所以我只需要在继承的panel(div)内编写一些html。 现在,当MenuMenu继承自Menu类时,我该怎么写。
找到解决方案后,对于Menu, Render实际上渲染控件,而不是面板渲染 RenderContents 。
#region Rendering Final Contents
protected override void Render(HtmlTextWriter output)
{
string Menus = string.Empty;
//Where as Menus contain menu in an html structure of ordered list.
Menus = GetMenuForAppOnUser();
output.Write(Menus);
}
#endregion
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.