0

2 つのテキスト ボックスがあり、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>

TextboxLastNameは正常にアクセスされていますが、2 つ目はnull 参照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がここでスローされているため、コードのこの部分のみを表示しています。何か不足していますか?

4

2 に答える 2

0

null 参照がスローされているのはここですか? 回線番号はありますか?ここでは、コントロールが実際に null をチェックされています。

.Text プロパティが null であるため、実際にはコードの別の場所で発生していると思います。たとえば、次のようなことをするとします。

txtPrimaryCompany.Text.Trim()

于 2014-08-13T13:18:07.700 に答える
0

何らかの理由IEditableTextControlで、私が作成したフィールドでは機能しません。TextBox代わりに使用しましたが、うまくいきました。

于 2014-08-16T04:15:00.013 に答える