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 个可能的答案:
- 这可以在 aspx 文件中以声明方式轻松完成
- 我必须在后面的代码中完成
- 它不能像这样完成,我需要整理我的列表方法并投影一个没有空值的新方法,类似的东西。
这是网格视图代码,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>
我的 GridView 中有一个对象列表,其中的子对象可能为空。我似乎无法获得正确的语法来测试 null 和 ignore/print 空字符串。
我看到了 3 个可能的答案:
- 这可以在 aspx 文件中以声明方式轻松完成
- 我必须在后面的代码中完成
- 它不能像这样完成,我需要整理我的列表方法并投影一个没有空值的新方法,类似的东西。
这是网格视图代码,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>