2014-03-05 28 views
0

我想在gridview中設置一個標籤,如果它返回(因爲它是一個默認日期,不需要)不顯示特定的日期。使用Eval來檢查特定的日期值

我用的代碼是

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

不幸的是,當我嘗試編譯代碼將無法運行。我試圖通過研究找到答案,但一直未能這樣做。

+0

它給您帶來的錯誤是什麼?我假設當你說它不會運行時,你會得到一些錯誤警告,可能會指出你正在遇到的確切問題... – Chris

+0

另外我剛剛注意到你的塊的內容被包裹在單引號中( ''')。這是否正確(即原來的代碼是什麼)?我一眼就不知道他們應該在那裏。 – Chris

+0

它正在編譯。它是在說失蹤;和失蹤:。這是標記 – Andy5

回答

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)) 
0

它使用克里斯的答案的一部分,但等於不起作用。將此值更改爲包含年份時解析值

+0

我在我的答案中增加了一個新部分來談論比較。我並沒有真正看到你的邏輯,只是在你遇到的第一個問題。此外,這不應該真的被添加爲答案,因爲它實際上並沒有回答你的問題本身。也許你打算評論我的答案? – Chris