50


16

'<%#Eval( "item")%>';を使用します。 Null値を処理し、0を表示

dataitemが「Null」の場合、「0」を表示したい


どうすればこれを達成できますか。

11 Answer


66


ページ上でパブリックメソッドを作成してから、コードインフロントから呼び出すこともできます。

e.g. C#を使用している場合:

public string ProcessMyDataItem(object myValue)
{
  if (myValue == null)
  {
     return "0 value";
  }

  return myValue.ToString();
}

次に、コードインフロントのラベルは次のようになります。


申し訳ありませんが、このコードをテストしていないため、 "` <%#ProcessMyDataItem(Eval( "item"))%> `"の構文が完全に正しいことを保証できません。


42


私はこれを文字列値に使用しています:

<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>

また、null許容値に対して次を使用できます。

<%#(Eval("Data") == null ? "0" : Eval("Data"))%>

また、.net 4.5以降を使用している場合、http://weblogs.asp.net/dwahlin/asp-net-4-5-web-forms-features-strongly-typed-data-controls [strongly型付きデータバインディング]:

        <%# Item.Title %>


13


VB.Netには次を使用します。

<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>


4


それも動作するはずです

Eval("item") == null?"0": Eval("item");


3


さらに、(x = Eval( "item")??を使用できます。 0)この場合。


1


ASP.NETをよく知らないのですが、三項演算子を使用できますか?

次のようなもの:(x = Eval( "item"))== Null? 0:x


1


このコードを試してみると便利です-

<%# ((DataBinder.Eval(Container.DataItem,"ImageFilename").ToString()=="") ? "" :"")%>


1


ジェイソンの答えの修正版を使用しました:

public string ProcessMyDataItem(object myValue)
{
  if (myValue.ToString().Length < 1)
  {
     return "0 value";
  }

  return myValue.ToString();
}


0


<%#Eval(" item ")%>`を `<%#If(Eval(" item ")、" 0 value ")%>(または `<%#Eval(" item ")?に置き換えてみてください。 ? 「0 value」%> `、C#を使用する場合)。


0


IIFを使用します。