FindControl返回一个空引用
本文关键字:一个 引用 返回 FindControl | 更新日期: 2023-09-27 18:17:42
我有两个文本框,我使用FindControl()
访问它们:
<tr>
<td align="right">
<asp:Label ID="LastNameLabel" AssociatedControlID="LastName" runat="server" /></td>
<td>
<asp:TextBox ID="LastName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="LastNameRequired" runat="server" ControlToValidate="LastName" Display="Dynamic"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td align="right">
<asp:Label ID="PrimaryCompanyLabel" AssociatedControlID="PrimaryCompany" runat="server" /></td>
<td>
<asp:TextBox ID="PrimaryCompany" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="PrimaryCompanyRequired" runat="server" ControlToValidate="PrimaryCompany" Display="Dynamic"></asp:RequiredFieldValidator></td>
</tr>
文本框LastName
正在被访问,但第二,PrimaryCompany
返回一个空引用
它们正在被访问:
private IEditableTextControl _txtLastName;
protected IEditableTextControl txtLastName
{
get
{
if (_txtLastName == null)
{
_txtLastName = (IEditableTextControl)this.CreateUserStep.ContentTemplateContainer.FindControl("LastName");
}
return _txtLastName;
}
}
private IEditableTextControl _txtPrimaryCompany;
protected IEditableTextControl txtPrimaryCompany
{
get
{
if (_txtPrimaryCompany == null)
{
_txtPrimaryCompany = (IEditableTextControl)this.CompleteStep.ContentTemplateContainer.FindControl("PrimaryCompany");
}
return _txtPrimaryCompany;
}
}
这段代码来自CodePlex中的SharePoint2013 FBAPack。LastName
字段是内置的,而PrimaryCompany
字段是由我添加的。
我只显示这部分代码,因为null reference
在这里被抛出。我错过什么了吗?
你确定它是在这里,空引用被抛出?你有电话号码吗?这里实际检查的是控件是否为空。
我猜它实际上是在代码的其他地方发生的,因为。text属性是空的。例如,如果你这样做:
txtPrimaryCompany.Text.Trim ()
由于某些原因,IEditableTextControl
不能在我创建的字段上工作。我用TextBox
代替,它工作。