1

通常,如果我将 ObjectDataSource 链接到 GridView 并且我有一个 TemplateColumn,其中有一个 Eval 并且它是 Null,我可以只放置一个“.ToString()”它工作正常。出于某种原因,当您使用 Linq to SQL 时,这并不相同。

我最初使用自定义 BLL 为我的 DAL 使用 XSD 文件。我使用 ObjectDataSource 将它绑定到 GridView。我正在用 Linq 将 XSD 文件换成 SQL,除了可以具有 Null 值的列之外,一切都像旧方法一样工作。

以前有没有人遇到过这个问题,如果有,我该如何解决这个问题?

4

1 回答 1

3

LINQ 返回的大多数内容都是Nullable 类型。因此,在您的绑定表达式中,您需要使用 GetValueOrDefault().ToString() 或新的“??” null 合并运算符,而不仅仅是普通的旧 ToString()。我希望这有帮助。检查此链接

例子:

// this will output the int if not null otherwise an empty string.
<%# (int?)Eval("MyIntegerField") ?? "" %> 
于 2009-02-17T06:39:40.370 回答