Пользовательский элемент управления сервером: унаследовано от класса Menu, как и что именно отображать
Я создал пользовательский элемент управления для всех своих приложений, который отображал бы меню, принимая имя соответствующего приложения, и регистрировался в пользовательских ролях и соответственно отображал меню. Я использую уже написанный Javascript для рендеринга меню, которое загружается из базы данных в виде HTML-строки, содержащей div и неупорядоченные списки. Теперь, возвращаясь к исходной проблеме, ранее я унаследовал свой элемент управления с помощью класса Panel, который отображается как div в html, я просто написал сгенерированный HTML-код в унаследованном контейнере панели. Теперь я хочу интегрировать элемент управления с веб-сайтами, на которых уже есть карты сайта. Для этого я унаследовал свой элемент управления от класса 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, так что мне просто нужно было написать немного html внутри унаследованной панели (div). Как мне теперь написать menuhtml, когда он унаследован от класса Menu.
1 ответ
Обнаруженное решение для меню, Render фактически отображает элемент управления вместо RenderContents, как для Panel.
#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