我正在尝试将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";
}
答案 0 :(得分:0)
以下行将给您错误:
t2.Text = "Maddsf";
原因:因为 FindControl()方法为您提供了Web控件。但是, txtID 不是Web控件,这就是为什么 FindControl()方法无法返回Web控件(在这种情况下为 TextBox )的原因。返回 null 值。您分配给 Literal 控件 lt 的 Text 属性的是输入文本字段,该文本字段将由浏览器成功呈现。但是,ASP.NET不知道该控件存在。
解决方案:出于同样的原因,您将能够在JavaScript中获得对该控件的引用。像这样:
document.getElementById("txtID").value = "Maddsf";