我想扩展DropDownList以添加ListSearchExtender。
使用下面的代码,控件在运行时运行良好,但在设计时它会给我这个错误:
SearchDropDownList - DdlTest渲染时出错 控制。页面不能为空。请确保此操作 在ASP.NET请求的上下文中执行。
我想了解这个错误的原因。
[ToolboxData("<{0}:SearchDropDownList runat=\"server\"></{0}:SearchDropDownList>")]
public class SearchDropDownList : DropDownList
{
private ListSearchExtender listSearchExt = new ListSearchExtender();
protected override void OnInit(EventArgs e)
{
ReloadSettings();
}
protected override void Render(HtmlTextWriter w)
{
base.Render(w);
listSearchExt.RenderControl(w);
}
public void ReloadSettings()
{
listSearchExt.TargetControlID = this.ID;
listSearchExt.ID = this.ID + "_CalendarExtender";
if (Controls.Count > 0)
{
foreach (Control item in Controls)
{
if (item.ID == listSearchExt.ID)
{
Controls.Remove(item);
}
}
}
Controls.Add(listSearchExt);
}
}
答案 0 :(得分:1)
我通过简单的方式得到它我不确定它是否会在将来出现问题,但现在它运作良好
protected override void Render(HtmlTextWriter w)
{
base.Render(w);
if (!this.DesignMode)
{
listSearchExt.RenderControl(w);
}
}