使用Eval检查特定的日期值

时间:2014-03-05 10:50:22

标签: asp.net

我试图在gridview中设置一个标签,以便在返回时显示特定日期(这是因为它是默认日期而不需要)。

我使用的代码是

<%# 'Convert.ToString(Eval("DateTaken")).Equals("01/01/1899") ? "" : Eval("DateTaken")'%>

不幸的是,当我尝试编译它时,代码将无法运行。我试图通过研究找到答案,但未能这样做。

2 个答案:

答案 0 :(得分:0)

<%# 'Convert.ToString(Eval("DateTaken")).Equals("01/01/1899") ? "" : Eval("DateTaken")'%>

据我所知,这是无效的语法。你有单引号'包装你的语句,这可能会使解析器混乱很多。我不确定你打算做什么,但我建议你不要尝试:

<%# Convert.ToString(Eval("DateTaken")).Equals("01/01/1899") ? "" : Eval("DateTaken")%>

我无法对此进行测试,但它看起来应该可以正常工作。

同样为了比较(我假设你先在其他地方测试过)我怀疑你可能会遇到Convert.ToString可能包含时间元素这一事实的问题。相反,我建议指定您想要输出的字符串格式。或者甚至更好地假设它是一个DateTime你回来比较它作为DateTime。以下任何一项都应该作为可靠的比较

(((DateTime)Eval("DateTaken")).ToString("yyyy-MM-dd")=="2014-03-05")
(((DateTime)Eval("DateTaken")).Date==new DateTime(2014,03,05))

答案 1 :(得分:0)

它使用了Chris的部分回答,但Equals不起作用。将此值更改为包含时将值解析为年