2016-02-26 13 views
5

Tôi rất mới đối với C#, vì vậy câu hỏi của tôi có thể ngớ ngẩn nhưng tôi thực sự không thể giải quyết nó bằng chính mình & googling. Tôi cần kiểm tra xem năm có nhảy hay không, vì vậy:Kiểm tra nếu năm là bước nhảy vọt với C#

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

hoạt động tốt. Nhưng tôi cần lấy Năm từ đâu đó, ví dụ: MS SQL:

YEAR(getDate()) AS yarr 

...

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

Lỗi:

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

Nhưng tại sao? Không thấy bất kỳ không gian nào trước năm.

Trả lời

8

Bạn đã sử dụng tập lệnh <%# %> hai lần được lồng nhau, xóa một.

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

tiếc là không có, "tag Server không cũng được hình thành" – Cove

+0

Một ngoặc ngay đã mất tích từ câu trả lời của tôi, thử nghiệm có mã cập nhật. – Adil

+0

Tbh cách tốt hơn là kiểm tra năm mà không có MS SQL: ... Cove

Các vấn đề liên quan