DropDownListを拡張してListSearchExtenderを追加したいと思います。
以下のコードを使用すると、コントロールは実行時に正常に機能しますが、設計時には次のエラーが発生します。
SearchDropDownList-DdlTestコントロールのレンダリング中にエラーが発生しました。ページをnullにすることはできません。この操作が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);
}
}