ASP 4.5 GridView模板字段,可能有null对象

时间:2015-01-06 13:11:29

标签: asp.net entity-framework gridview webforms

我在GridView中有一个对象列表,其中子对象可以为null。我似乎无法获得正确的语法来测试null并忽略/打印空字符串。

我看到3个可能的答案:

  1. 这可以通过声明方式在aspx文件中轻松完成
  2. 我必须在
  3. 后面的代码中执行此操作
  4. 它不能这样做,我需要整理我的列表方法并投射一个没有空值的新方法,就像那样。
  5. 这是网格视图代码,GetMyData是一个只返回IEnumerable<MyClass>的方法,它来自EntityFramework,我正在使用Include方法来急切加载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>
    

    请注意,我在这个项目中使用实体框架6.1和.Net 4.5

1 个答案:

答案 0 :(得分:1)

不要使用;

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