【发布时间】:2014-08-12 12:29:15
【问题描述】:
我有两个文本框,我使用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 正在返回 null 引用
他们正在通过以下方式访问:
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。我错过了什么吗?
【问题讨论】:
-
您可以在不同的容器中找到它们:CreateUserStep 和 CompleteStep。
标签: c# asp.net sharepoint findcontrol fba