【问题标题】:Conditional check of DateTime in x-kendo-templatex-kendo-template 中 DateTime 的条件检查
【发布时间】:2016-01-19 19:14:56
【问题描述】:

Approved 是我模型中的 DateTime。在我的 Razor 视图中,approvedDate 是一个 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 语句起作用的语法是什么?

【问题讨论】:

    标签: kendo-ui kendo-template


    【解决方案1】:

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

    我同时使用了 if else 和三元语法,并将 Razor 变量转换为 javascript Date。

    @{ 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:失败

    测试 4:2015 年 8 月 22 日

    我从 OP 中对其进行了一些更改。如果条件通过,则现在显示已应用,如果条件失败,则显示“失败”。现在这两个问题已经解决,代码可以很容易地修改为原始行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      相关资源
      最近更新 更多