1

通常、ObjectDataSource を GridView にリンクしていて、Eval を含む TemplateColumn があり、それが Null の場合、「.ToString()」を配置するだけで問題なく動作します。何らかの理由で、Linq to SQL を使用している場合、これは同じようには機能しません。

私はもともと、カスタム BLL を使用して DAL に XSD ファイルを使用していました。ObjectDataSource を使用して GridView に関連付けました。Linq を使用して XSD ファイルを SQL に交換している最中ですが、Null 値を持つ可能性のある列を除いて、すべてが古い方法と同じように機能しています。

以前に誰かがこれに遭遇したことがありますか?もしそうなら、どうすればこの問題を回避できますか?

4

1 に答える 1

3

LINQ が返すほとんどすべてはNullable 型です。したがって、バインディング式では、GetValueOrDefault().ToString() または新しい「??」を使用する必要があります。単純な古い ToString() ではなく、null 合体演算子。これが役立つことを願っています。このリンクをチェックしてください。

例:

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