渲染时如何在控件上重新启动autopost

时间:2011-01-05 18:35:05

标签: asp.net sharepoint

我必须在Web部件中添加一个下拉控件。 我使用HTML字符串渲染部件如下......

StringBuilder sb = new StringBuilder();

sb.Append(div id =“content”; 字符串中有引号

sb.Append(div class =“”hb“”>“); * sb.Append(div class =“”someclass“”>“); * sb.Append(h2 id =“”contentpage_title“”> Title“); ** sb.Append(div class =“”ctn_conferences“”>“); * *

writer.Write(sb.ToString()); *

我必须添加一个加载的下拉控件...所以我声明了..

受保护的DropDownList ddMyDropDown =新的DropDownList();

然后在我想要的渲染中间添加控件,如下所示......

ddMyDropDown.RenderControl(作家);

一切都很好......除了......回帖不起作用。 我的事件处理程序没有被执行。

当我添加控件...如 Controls.Add(Control)时,它会添加到部件的底部。那不是我想要的。

那么如何让帖子恢复工作?

提前致谢。

-Satyen

1 个答案:

答案 0 :(得分:1)

您对渲染方法覆盖有正确的想法,但添加以下内容:

protected DropDownList ddMyDropDown;

protected override void CreateChildControls()
{
    base.CreateChildControls();
    ddMyDropDown = new DropDownList();
    ddMyDropDown.AutoPostBack = true;
    Controls.Add(ddMyDropDown);
}

此外,在尝试通过CreateChildControls()方法渲染任何控件设置之前,在render方法中重写调用EnsureChildControls()。