1

我正在使用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>

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

我如何if-then-else在模板中使用,所以如果属性为 null 则不显示任何内容

笔记:

1>我可以在服务器上处理这个并将值设置为string.empty如果属性为空,但我想在客户端处理它。

2>Telerik在这里有模板的概述。但是,显示属性值#= ##: #(又名哈希模板)的语法不起作用。我必须使用语法${ }才能让它工作。
我知道如何使用if-then-else哈希模板语法。但是我不知道如何使用if-then-else语法${ }

4

1 回答 1

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;'.....

也许这个我在 2011 年加入书签的链接可能会让事情变得正确。是什么让您无法使用 has 模板样式?

于 2018-01-31T00:32:13.083 回答