我在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。
非常感谢,
发布于 2010-01-24 23:26:35
我不确定这是否有什么原因不适用于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);
}发布于 2010-01-24 22:59:15
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);
}发布于 2013-07-19 06:38:53
我正在做一些类似的事情,我想把新的SP 2013“+添加新公告”放在我的自定义webpart中。
我试过了,但我不知道这是否是个好方法。基本上你可以把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,请告诉我。
https://stackoverflow.com/questions/2129255
复制相似问题