0

我为我的所有应用程序构建了一个自定义控件,该控件将使用相应应用程序的名称呈现菜单并登录用户角色并相应地呈现菜单。我正在使用已经编写的 javascript 来呈现从 db 以包含 div 和无序列表的 html 字符串的形式加载的菜单。现在,回到最初的问题,之前我用Panel类继承了我的控件,它在 html 中呈现为 div,我只是在继承的面板容器中编写了生成的 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 继承的,所以我只需要在继承的 panel(div) 中编写一些 html。当从Menu类继承时,我现在如何编写 menuhtml 。

4

1 回答 1

0

找到解决方案,对于Menu,Render实际上是渲染控件而不是像Panel那样渲染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
于 2013-06-24T11:04:17.293 回答