如何更新/刷新kendo多选模板?

时间:2017-04-27 16:12:43

标签: javascript html kendo-ui kendo-multiselect

我有一个使用tagTemplate的kendo multiselect,因此当您选择选项时,它会显示x of y selected。我的问题是,当一个项目被添加到数据源时,我需要更新参数y,但我不知道如何刷新模板。这是我的html模板和我的js代码:

HTML模板:

<script id="SelectedViewsTagTemplate" type="text/x-kendo-template">
    #:values.length# #='@Html.Raw(rm.GetString("STR_OF"))# #:total-1#
</script>

用于tagtemplate的Javascript:

            tagTemplate: function (dataItem) {
                dataItem.total = _getTotal.call(this);
                dataItem.total += dataItem.AddMode ? 1 : 0;
                return kendo.template($("#SelectedViewsTagTemplate").html())(dataItem);
            }

我已经尝试触发“更改”事件以使其更新,但它似乎不起作用,除了重新创建多选,我不知道如何刷新模板

1 个答案:

答案 0 :(得分:0)

如果有其他人遇到这个问题,我最终找到了一个解决方法来刷新multiSelect模板。重新创建包含你在js模板中使用的元素的对象,并像这样调用模板函数: / p>

var templateObject = {
   values: currentMultiSelect.value(),
   total: currentMultiSelect.value().length
};
currentMultiSelect.options.tagTemplate(templateObject);

因为我只在我的模板中使用totalvalues,这是我在对象中需要的唯一属性