如何在 C# asp.net 中从 HTML 字符串生成控件



我正在尝试将我的 HTML 字符串转换为 C# asp.net 中的控件,并且收到以下错误"异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

我从过去五到六个小时开始搜索。已经在互联网上经历了很多答案,包括Stackoverflow。但是没有答案解决了我的疑问。提前感谢重播

protected TextBox t2;
protected override void OnInit(EventArgs e)
{
String Str ="<input  type="text" id="txtID" class="form-control" runat="server"  />";
LiteralControl lt = new LiteralControl();
lt.Text = Str;
t1.Controls.Add(lt);
t2 = (TextBox)t1.FindControl("txtID");
t2.Text = "Maddsf";
}

以下行将为您提供错误:

t2.Text = "Maddsf";

原因:因为 FindControl() 方法为您提供了一个 Web 控件。但是,txtID 不是 Web 控件,这就是为什么 FindControl() 方法无法返回 Web 控件(在本例中为 TextBox)而返回 null 值的原因。分配给文本控件 ltText 属性的是一个输入文本字段,浏览器将成功呈现该字段。但是,ASP.NET 不知道控件存在。

解决方案:出于同样的原因,您将能够在 JavaScript 中获取对该控件的引用。像这样:

document.getElementById("txtID").value = "Maddsf";

最新更新