【发布时间】:2013-05-17 10:18:57
【问题描述】:
<td>
<asp:Label ID="TypeOfPaintingLabel" runat="server"
Text='<%# Eval("TypeOfPainting") %>' />
</td>
有人知道这是如何工作的吗?如果没有提供给TypeOfPainting 的值,我想显示"NA"。
【问题讨论】:
<td>
<asp:Label ID="TypeOfPaintingLabel" runat="server"
Text='<%# Eval("TypeOfPainting") %>' />
</td>
有人知道这是如何工作的吗?如果没有提供给TypeOfPainting 的值,我想显示"NA"。
【问题讨论】:
通过创建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"))%>
你必须遵循这种场景。
希望它有效。
【讨论】:
您的控件是runat="server" 为什么不控制代码隐藏中的值?
If (string.IsNullOrEmpty(TypeofPaintingValue))
{
TypeofPainting.Text="NA";
}
【讨论】:
你可以尝试做类似的事情:
<%#(string.IsNullOrEmpty(Eval("TypeOfPainting").ToString()) ? "NA" : Eval("TypeOfPainting"))%>
【讨论】:
你也可以从数据库端设置这些东西
ISNULL(TypeOfPainting,'NA') AS TypeOfPainting
【讨论】:
我建议只在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
【讨论】: