ASP 4.5 GridView Template Field with possible null object

ASP 4.5 GridView Template Field with possible null object

我的 GridView 中有一个对象列表,其中的子对象可能为空。我似乎无法获得正确的语法来测试 null 和 ignore/print 空字符串。

我看到了 3 个可能的答案:

  1. 这可以在 aspx 文件中以声明方式轻松完成
  2. 我必须在后面的代码中完成
  3. 它不能像这样完成,我需要整理我的列表方法并投影一个没有空值的新方法,类似的东西。

这是网格视图代码,GetMyData 是一种仅 returns IEnumerable<MyClass> 的方法,它来自 EntityFramework 我正在使用 [=4] =] 方法来预先加载 Customer 对象。

<asp:GridView runat="server"
    CssClass="listTable"
    ItemType="MyClass"
    DataKeyNames="ID"
    SelectMethod="GetMyData"
    AutoGenerateColumns="false"
    AlternatingRowStyle-CssClass="listAlternate">
    <Columns>
        <asp:DynamicField DataField="ReferenceDate" />
        <asp:TemplateField>
            <ItemTemplate>
                <%# (Item.Customer != null) ? Item.Customer .Name : ""; %>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>       
</asp:GridView>

请注意,我在此项目中使用 entity framework 6.1 和 .Net 4.5

不要使用;

    <asp:TemplateField>
        <ItemTemplate>
            <%# Eval("Item.Customer") != null ? Eval("Item.Customer.Name) : "" %>
        </ItemTemplate>
    </asp:TemplateField>