如何在kendo模板中使用if-then-else

时间:2018-01-30 23:22:27

标签: kendo-ui kendo-asp.net-mvc kendo-template kendo-autocomplete

我正在使用UI for ASP.NET Core。我已经配置了自动完成小部件,并自定义了标题&项目模板如下

@(Html.Kendo().AutoCompleteFor(x => x.AccountNumber)
        .DataTextField("AccountNumber")
        .DataSource(source =>
        {
            source.Read(read =>
            {
                read.Action("GetData", "Lookup");
            })
            .ServerFiltering(true);
        })           
        .MinLength(2)
        .Height(400)
        .HeaderTemplateId("headerTemplate")
        .TemplateId("itemTemplate"))

模板

<script id="headerTemplate" type="text/x-kendo-template">
    <table>
        <tr class="auto-hd-tr">
            <td class="auto-hd-td auto-td-large">Account Number</td>             
            <td class="auto-hd-td auto-td-small">State</td>                
        </tr>
    </table>
</script>

<script id="itemTemplate" type="text/x-kendo-template">
    <table>
        <tr>
            <td class="auto-item-td auto-td-large">${AccountNumber}</td>            
            <td class="auto-item-td auto-td-small">${State}</td>               
        </tr>
    </table>
</script>

当自动完成显示搜索结果时,如果AccountNumberState属性为null,则实际上将null字符串显示为值。

如何在模板中使用if-then-else,因此如果property为null,则不显示任何内容

注意:

1&GT;我可以在服务器上处理这个并将值设置为string.empty如果property为null但我想在客户端处理它。

2&gt; Telerik有overview of Template here。但是,显示属性值#= ##: #(也称为哈希模板)的语法不起作用。我必须使用语法${ }才能使其正常工作 我知道如何使用哈希模板语法if-then-else。但是,我不知道如何使用if-then-else语法${ }

1 个答案:

答案 0 :(得分:1)

我刚搜索了我的代码库,我对${}样式的唯一用途是设置值,例如:

 <script id="tmpMyViewItem" type="text/x-kendo-tmpl" >
    <div class="myViewItem" id=${AccountNumber}>        
        <h3>${AccountNumber}</h3>       
    </div> 
</script>

在我有条件语句的所有地方都使用了哈希模板:

.ItemTemplate("#if(data.Name!='<All>'){#<img style='padding-top:3px;'.....

也许this link我在2011年收到了书签,可能会让人眼前一亮。是什么阻止你使用has模板样式?