将HTML添加到CreateChildControls()方法

时间:2010-01-24 22:51:54

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

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

     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以便我可以使用RenderWebPart()方法围绕这些控件包装div, 不带

我正在尝试实现这一点,因为我不想使用一个ID为自动生成客户端ID的面板。

非常感谢,

3 个答案:

答案 0 :(得分:2)

我不确定是否有某些原因这对webpart不起作用,但这似乎可以解决网络用户控件的问题:

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);

}

答案 1 :(得分: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);
}

答案 2 :(得分:0)

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

我试过这个,但它确实有效,但我不知道这是不是一个很好的方法。基本上你可以把任何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。