C# C、 ASP.NET-NullReferenceException-对象引用未设置为对象的实例

C# C、 ASP.NET-NullReferenceException-对象引用未设置为对象的实例,c#,asp.net,C#,Asp.net,使用中变量的定义: Guid fldProId = (Guid)ffdPro.GetProperty("FieldId"); string fldProValue = (string)ffdPro.GetProperty("FieldValue"); FormFieldDef fmProFldDef = new FormFieldDef(); fmProFldDef.Key = fldProId; fmProFldDef.Retrieve(); string fldProName = (stri

使用中变量的定义:

Guid fldProId = (Guid)ffdPro.GetProperty("FieldId");
string fldProValue = (string)ffdPro.GetProperty("FieldValue");
FormFieldDef fmProFldDef = new FormFieldDef();
fmProFldDef.Key = fldProId;
fmProFldDef.Retrieve();
string fldProName = (string)fmProFldDef.GetProperty("FieldName");
string fldProType = (string)fmProFldDef.GetProperty("FieldType");
给出问题的行,特别是第4行hTxtBox.Text=…:

if (fldProType.ToLower() == "textbox")
{
    Label hTxtBox = (Label)findControl(fldProName);
    hTxtBox.Text = fldProValue;
}

所有数据都是从数据库中正确收集的,但是标签上出现了错误。有什么想法吗?

看起来fmProFldDef的FieldName属性有问题。您是否验证它正在获取hTxtBox的客户端Id?

看起来fmProFldDef的FieldName属性有问题。您是否验证它正在获取hTxtBox的客户端Id?

此行返回空值:

Label hTxtBox = (Label)findControl(fldProName);
这可能是FieldName不存在的结果,因此此行返回null,然后在查找中使用null

string fldProName = (string)fmProFldDef.GetProperty("FieldName");

或者FieldName中的文本不代表表单字段。

此行返回空值:

Label hTxtBox = (Label)findControl(fldProName);
这可能是FieldName不存在的结果,因此此行返回null,然后在查找中使用null

string fldProName = (string)fmProFldDef.GetProperty("FieldName");

或者FieldName中的文本不代表表单字段。

是否确定findControl正在返回值


hTxtBox.Text是对可能引发NullReferenceException的集合执行任何计算的属性吗?

您确定findControl正在返回值吗


hTxtBox.Text是对可能引发NullReferenceException的集合执行任何计算的属性吗?

findControl返回的是空值。可能是特定标签不是当前页面的直接子级,即在UpdatePanel或其他控件内,因此控件的实际名称与应用的名称不同,因此无法找到它。例如,如果名为name,则实际名称可能是ctl0$content$name,因为它嵌套在页面上的另一个控件中


您没有提供足够的上下文信息,我无法给您更好的答案。

findControl返回空值。可能是特定标签不是当前页面的直接子级,即在UpdatePanel或其他控件内,因此控件的实际名称与应用的名称不同,因此无法找到它。例如,如果名为name,则实际名称可能是ctl0$content$name,因为它嵌套在页面上的另一个控件中


您没有提供足够的上下文信息,我无法给您更好的答案。

FindControl可能无法看到文本框-它是否位于数据绑定控件(例如ListView、FormView等)中

FindControl可能无法看到文本框-它是否位于数据绑定控件(例如ListView、FormView等)中