我在我的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的面板。
非常感谢,
答案 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。