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

有谁知道这是如何工作的?如果"NA"没有提供给TypeOfPainting.

4

5 回答 5

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"))%>

您必须遵循这种类型的方案。

希望它有效。

于 2013-05-22T11:32:11.613 回答
3

您的控制是runat="server"为什么您不控制代码隐藏中的值?

If (string.IsNullOrEmpty(TypeofPaintingValue))
{
  TypeofPainting.Text="NA";
}
于 2013-05-22T11:29:35.647 回答
2

好吧,您可以尝试执行以下操作:

<%#(string.IsNullOrEmpty(Eval("TypeOfPainting").ToString()) ? "NA" : Eval("TypeOfPainting"))%>
于 2013-05-22T11:30:06.637 回答
0

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

ISNULL(TypeOfPainting,'NA') AS TypeOfPainting
于 2013-05-22T11:30:47.043 回答
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
于 2013-05-22T11:37:30.133 回答