【问题标题】:ASP 4.5 GridView Template Field with possible null object带有可能为空对象的 ASP 4.5 GridView 模板字段
【发布时间】:2015-03-04 03:56:44
【问题描述】:

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

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

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

这是网格视图代码,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

【问题讨论】:

    标签: asp.net entity-framework gridview webforms


    【解决方案1】:

    不要使用;

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

    【讨论】:

    • 是的,这就是解决方案,多么令人尴尬的错误。谢谢。
    猜你喜欢
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2019-05-25
    相关资源
    最近更新 更多