如果为null,则Eval()显示自定义值

时间:2013-05-22 11:23:48

标签: c# asp.net mysql eval

<td>
    <asp:Label ID="TypeOfPaintingLabel" runat="server"
               Text='<%# Eval("TypeOfPainting") %>' />
</td>

有谁知道这是如何工作的?如果没有为"NA"提供任何值,我想显示TypeOfPainting

5 个答案:

答案 0 :(得分:7)

创建public method您可以非常轻松地完成此任务,例如

public string testbind(object myvalue)
{
  if (myvalue == null)
  {
     return "NA value";
  }

  return myValue.ToString();
}

标签代码:

<asp:Label ID="TypeOfPaintingLabel" Text='<%# testbind(Eval("TypeOfPainting")) %>' runat="server"></asp:Label>

或者您可以使用

<%#(String.IsNullOrEmpty(Eval("TypeOfPainting").ToString()) ? "NA" : Eval("TypeOfPainting"))%>

你必须遵循这种类型的情节。

希望它有效。

答案 1 :(得分:2)

您的控件是runat="server"为什么不控制代码背后的值?

If (string.IsNullOrEmpty(TypeofPaintingValue))
{
  TypeofPainting.Text="NA";
}

答案 2 :(得分:2)

你可以尝试做类似的事情:

<%#(string.IsNullOrEmpty(Eval("TypeOfPainting").ToString()) ? "NA" : Eval("TypeOfPainting"))%>

答案 3 :(得分:0)

你也可以从数据库端设置这些东西

ISNULL(TypeOfPainting,'NA') AS TypeOfPainting

答案 4 :(得分:0)

我建议仅在SQL中执行此操作:

使用ISNULL(expression, value_if_expression_is_null)

COALESCE(expression, expression2, expression3)

示例:

SELECT
  Name, DOB,
  (CASE WHEN Address1 IS NULL THEN 'NA' ELSE Address1 END) AS Address1,
  (CASE WHEN Address2 IS NULL THEN 'NA' ELSE Address2 END) AS Address2,
  ...
FROM Users

SELECT 
  Name, DOB, Address1, 
  coalesce(Address2,'NA'), coalesce(City,'NA'), 
  coalesce(State,'NA'), coalesce(Zip,'NA')
FROM Users