Eval()如果为空则显示自定义值
本文关键字:显示 自定义 如果 Eval | 更新日期: 2023-09-27 18:14:53
<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