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

时间:2019-01-19 12:28:30

标签: c# asp.net

我正在尝试将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";
}

1 个答案:

答案 0 :(得分:0)

以下行将给您错误:

t2.Text = "Maddsf";

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

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

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