dataitem がNull
表示される場合0
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
どうすればこれを達成できますか?
ページでパブリック メソッドを作成し、それをコード イン フロントから呼び出すこともできます。
たとえば、C# を使用している場合:
public string ProcessMyDataItem(object myValue)
{
if (myValue == null)
{
return "0 value";
}
return myValue.ToString();
}
次に、コードインフロントのラベルは次のようになります。
<asp:Label ID="Label18" Text='<%# ProcessMyDataItem(Eval("item")) %>' runat="server"></asp:Label>
申し訳ありませんが、このコードをテストしていないため、" <%# ProcessMyDataItem(Eval("item")) %>
" の構文が完全に正しいとは保証できません。
私はこれを文字列値に使用しています:
<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>
null 許容値に次を使用することもできます。
<%#(Eval("Data") == null ? "0" : Eval("Data"))%>
また、.net 4.5 以降を使用している場合は、強く型付けされたデータ バインディングを使用することをお勧めします。
<asp:Repeater runat="server" DataSourceID="odsUsers" ItemType="Entity.User">
<ItemTemplate>
<%# Item.Title %>
</ItemTemplate>
</asp:Repeater>
VB.Net には以下を使用します。
<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
それもうまくいくはずです
Eval("item") == null?"0": Eval("item");
さらに、この場合は(x = Eval( "item")?? 0)を使用できます。
ASP.NETはよくわからないのですが、三項演算子は使えますか?
http://en.wikipedia.org/wiki/Ternary_operation
次のようなもの: (x=Eval("item")) == Null ? 0 : ×
役に立つかもしれないこのコードを試してください -
<%# ((DataBinder.Eval(Container.DataItem,"ImageFilename").ToString()=="") ? "" :"<a
href="+DataBinder.Eval(Container.DataItem, "link")+"><img
src='/Images/Products/"+DataBinder.Eval(Container.DataItem,
"ImageFilename")+"' border='0' /></a>")%>
(または、C# を使用している場合は ) に置き換え<%# Eval("item") %>
てみてください。<%# If(Eval("item"), "0 value") %>
<%# Eval("item") ?? "0 value" %>
IIF を使用します。
<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>'
runat="server"></asp:Label>