【问题标题】:Custom Server Control: Inherited from Menu class, how and exactly what to render自定义服务器控件:继承自 Menu 类,如何以及确切地呈现什么
【发布时间】:2013-06-20 20:11:09
【问题描述】:

我为我的所有应用程序构建了一个自定义控件,该控件将使用相应应用程序的名称呈现菜单并登录用户角色并相应地呈现菜单。我正在使用已经编写的 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。

【问题讨论】:

    标签: menu custom-controls aspmenu aspmenu-control


    【解决方案1】:

    找到了解决办法,对于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
    

    【讨论】:

      猜你喜欢
      • 2011-05-11
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 2012-11-09
      • 2011-11-24
      • 2014-02-06
      相关资源
      最近更新 更多