情况:jQuery Ajax脚本调用ASP.NET通用处理程序,后者又动态呈现web asp.net控件的html代码。标签的AssociatedControlID属性存在问题,导致异常。我的代码是:
public override PlaceHolder GetWebControl()
{
// GetWrappingPlaceHolder() creates an placeholder
PlaceHolder plh = this.GetWrappingPlaceHolder();
var inputTextBox = new TextBox();
inputTextBox.ID = "TextBox";
inputTextBox.Text = this.Value;
var label = this.GetLabel();
label.AssociatedControlID = inputTextBox.ID;
plh.Controls.Add(label);
plh.Controls.Add(inputTextBox);
return plh;
}
从处理程序调用上述方法:
var control = option.GetWebControl();
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
control.RenderControl(htw);
最后一行抛出异常。
发生了'System.Web.HttpException'类型的异常 System.Web.dll但未在用户代码中处理
其他信息:无法找到id为'TextBox'的控件 与标签'标签'相关联。
我该如何解决这个问题?特别是,没有添加我的控件动态创建Web.UI.Page?