在x-kendo-template中有条件地检查DateTime

时间:2016-01-19 19:14:56

标签: kendo-ui kendo-template

Approved是我模型中的DateTime。 approvedDate是我Razor视图中的Datetime变量。脚本块位于相同的Razor视图中。

我想测试Approved以查看它是否在approvedDate之前,并将其替换为空字符串""如果是,则在x-kendo-template detail-template中。

@{ var approvedDate = DateTime.Parse("01-01-2016"); }

<script id="detail-template" type="text/x-kendo-template">

 <ul>

    < li>#if (# #= Approved # # < @approvedDate) {# ""#}else{# #= kendo.toString(Approved, "MM-dd-yyyy") # #}#</li>

 </ul>

</script>

上述语法导致detail-template脚本失败。

使if语句有效的语法是什么?

1 个答案:

答案 0 :(得分:0)

有两个问题,一个是语法,在条件语句中使用了Razor DateTime变量。

我有if else和trinary语法,并将Razor变量转换为javascript日期。

@{ var approvedDate = "01-01-2015"; }

<script id="tab_template" type="text/kendo-tmpl">
 # var approvedDate = new Date(Date.parse(@approvedDate)); #

...

<li><label>Test1: </label>#if (Applied < approvedDate ) {# #: kendo.toString(Applied, "MM-dd-yyyy") # #}else{# Fail #}#</li>
 <li><label>Test2: </label>#if (Applied > approvedDate ) {# #: kendo.toString(Applied, "MM-dd-yyyy") # #}else{# Fail #}#</li>
 <li><label>Test3:</label>#= Applied < approvedDate ? kendo.toString(Applied, "MM-dd-yyyy") : "Fail" #</li>
 <li><label>Test4:</label>#= Applied > approvedDate ? kendo.toString(Applied, "MM-dd-yyyy") : "Fail" #</li>

...

</script>

显示以下内容:

测试1:失败

测试2:2015年8月22日

测试3:失败

Test4:08-22-2015

我从OP改了一下。如果条件通过并且“失败”,它现在显示应用。如果失败了现在已经解决了两个问题,代码可以很容易地修改为原始行为。