0

連絡先名のリストを持つ GridView に依存する FormView でアドレスを作成しようとしています。

GridView の請求書名の横にある選択ボタンをクリックすると、FormView に請求書の住所が表示されます。請求書が既に選択されているときにもう一度クリックすると、NullReferenceException エラーがスローされます。

次のフィールドがあります: address_line_1、address_line_2、address_line_3

フィールドが空の場合、または null が含まれている場合に無駄な空白行が生成されないように、コードを作成しようとしました。

<asp:FormView ID="addressDetails" runat="server" DataSourceID="ADetails" DataKeyNames="address_id" AllowPaging="true" >
    <ItemTemplate>
        <% If Not String.IsNullOrEmpty(addressDetails.DataItem("address_line_1").ToString()) Then%>
            <asp:Label ID="lblAddressLine1" runat="server" Text='<%# Bind("address_line_1") %>' /><br />
        <%  End If%>
        <% If Not String.IsNullOrEmpty(addressDetails.DataItem("address_line_2").ToString()) Then%>
            <asp:Label ID="lblAddressLine2" runat="server" Text='<%# Bind("address_line_2") %>' /><br />
        <%  End If%>
        <% If Not String.IsNullOrEmpty(addressDetails.DataItem("address_line_3").ToString()) Then%>
            <asp:Label ID="lblAddressLine3" runat="server" Text='<%# Bind("address_line_3") %>' /><br />
        <%  End If%>
    </ItemTemplate>
</asp:FormView>

私が得る例外は、次の行の「NullReferenceException was unhandled by user code」です。

<% If Not String.IsNullOrEmpty(addressDetails.DataItem("address_line_1").ToString()) Then%>

初めては機能するが、2回目は機能しない理由を誰かが知っていますか?

4

1 に答える 1

0

最終的にページの大部分を再調整し、aspx ページ内の If ステートメントを削除しました。

于 2013-03-06T21:56:13.177 に答える