【问题标题】:Adding html to CreateChildControls() method将 html 添加到 CreateChildControls() 方法
【发布时间】:2011-01-08 21:53:28
【问题描述】:

我在我的 CreateChildControls() 方法中的 webpart 中使用 MOSS 2007 我有以下代码:

     protected override void CreateChildControls()
        {
        base.CreateChildControls();

        Panel myPanel = new Panel();
        myPanel.ID = "SelectionPanel";
        this.Controls.Add(myPanel);

        this.myGridView = new GridView();
        createMyGridView(ref myGridView);
        myPanel.Controls.Add(myGridView);

        this._btnUpdate = new Button();
        this._btnUpdate.Text = "Update";
        myPanel.Controls.Add(_btnUpdate);
        this._btnUpdate.Click += new EventHandler(_btnUpdate_Click);
}

我的问题是如何插入 html,以便我可以在这些控件周围包裹一个 div,没有 使用 RenderWebPart() 方法。

我正在努力实现这一点,因为我不想使用 id 将是自动生成的客户端 id 的面板。

非常感谢,

【问题讨论】:

    标签: c# moss sharepoint-2007 web-parts


    【解决方案1】:

    Panel 呈现为<div>。试试这个:

    protected override void CreateChildControls()
    {
        base.CreateChildControls();
    
        Panel around = new Panel();
    
        Panel myPanel = new Panel();
        myPanel.ID = "SelectionPanel";
        around.Controls.Add(myPanel);
    
        // ... other controls ... \\
    
        this.Controls.Add(around);
    }
    

    【讨论】:

    • 对不起,我已经尝试过了,但这会在面板上生成一个我不想要的自动生成的客户端 ID
    【解决方案2】:

    我不确定是否有某种原因这对 web 部件不起作用,但这似乎对 web 用户控件有用:

    protected override void CreateChildControls()
    {
    base.CreateChildControls();
    
    var container = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
    container.Attributes.Add("id","SelectionPanel");
    
    TextBox tb = new TextBox();
    container.Controls.Add(tb);
    
    this.Controls.Add(container);
    
    }
    

    【讨论】:

      【解决方案3】:

      我正在使用类似的东西,我想将新的 SP 2013“+ 添加新公告”放在我的自定义 Web 部件中。

      我试过这个,它有效,但我不知道这是否是一个好方法。基本上你可以把我发现的任何 html 放在一个 litteralcontrol 中......

      string contents = "<div class=\"ms-comm-heroLinkContainer wp-custom-addnew\"><a id=\"forum0-NewPostLink\" class=\"ms-textXLarge ms-heroCommandLink\" title=\"add new announcement\" href=\"" + list.DefaultNewFormUrl + "\"><span class=\"ms-list-addnew-imgSpan20\"><img class=\"ms-list-addnew-img20\" src=\"/_layouts/15/images/company/SPSPrite.png\"></span><span>New Announcement</span></a><div class=\"ms-clear\"></div></div>";
      
      LiteralControl link = new LiteralControl(contents);
      
      this.Controls.Add(link);
      

      请告诉我是否有更好的方式来发布“原始自定义”html。

      【讨论】:

        猜你喜欢
        • 2013-04-12
        • 1970-01-01
        • 1970-01-01
        • 2011-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 1970-01-01
        相关资源
        最近更新 更多