連絡先名のリストを持つ 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回目は機能しない理由を誰かが知っていますか?