それぞれのアプリケーションの名前を取得してメニューをレンダリングし、ユーザーの役割にログインして、それに応じてメニューをレンダリングするすべてのアプリケーション用のカスタム コントロールを作成しました。div と順序付けられていないリストを含む html 文字列の形式で db から読み込まれるメニューをレンダリングするために、既に作成された JavaScript を使用しています。さて、元の問題に来て、以前はhtmlでdivとしてレンダリングされるPanelクラスでコントロールを継承し、継承されたパネルコンテナに生成されたHTMLを書きました。ここで、既にサイトマップがある Web サイトとコントロールを統合したいと考えています。そのために、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 を記述するだけで済みました。Menuクラスから継承する場合、menuhtml を記述するにはどうすればよいですか。