Добавление HTML в метод CreateChildControls () - PullRequest
2 голосов
/ 25 января 2010

Я использую 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, чтобы я мог обернуть div вокруг этих элементов управления, без , используя метод RenderWebPart ().

Я пытаюсь добиться этого, потому что я не хочу использовать панель, идентификатор которой будет автоматически сгенерированным идентификатором клиента.

Большое спасибо,

Ответы [ 3 ]

2 голосов
/ 25 января 2010

Я не уверен, есть ли какая-то причина, по которой это не сработает для веб-части, но, похоже, это помогает при управлении веб-пользователями:

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 голос
/ 25 января 2010

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);
}
0 голосов
/ 19 июля 2013

Я работаю с чем-то похожим, и я хотел добавить новый SP 2013 "+ добавить новое объявление" в мою пользовательскую веб-часть.

Я попробовал это, и это сработало, но я не знаю, еслиэто хороший способ сделать это.По сути, вы можете поместить любой html в буквальный контроль, который я обнаружил ...

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.

...