2016-02-26 83 views
5

我對C#很新,所以我的問題可能很愚蠢,但我真的不能自己解決它&使用Google搜索。我需要檢查一年是否飛躍,所以:檢查一年是否用c跳躍#

<mso:if runat=server condition='<%# DateTime.IsLeapYear(2000)%>'> 

工作正常。但是我需要從某個地方獲得Year,例如MS SQL:

YEAR(getDate()) AS yarr 

...

<mso:if runat=server condition='<%# DateTime.IsLeapYear(<%#Convert.ToInt32(DataBinder.Eval(Container.DataItem, "yarr"))%>)%>'> 

錯誤:

CS1040: Preprocessor directives must appear as the first non-whitespace character on a line

但是,爲什麼?一年之前沒有看到任何空間。

回答

8

您使用了兩次嵌套的scriptlet <%# %>,刪除一個。

condition='<%# DateTime.IsLeapYear(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "yarr")))%>' 
+0

不幸的是,「服務器標籤結構不正確」 – Cove

+0

我的答案中缺少一個右括號,使用更新後的代碼進行測試。 – Adil

+0

Tbh更好的方法是檢查一年沒有MS SQL: ... Cove