<td>
<asp:Label ID="TypeOfPaintingLabel" runat="server"
Text='<%# Eval("TypeOfPainting") %>' />
</td>
有谁知道这是如何工作的?如果"NA"
没有提供给TypeOfPainting
.
通过创建一个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