我有一个使用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);
}
我已经尝试触发“更改”事件以使其更新,但它似乎不起作用,除了重新创建多选,我不知道如何刷新模板
答案 0 :(得分:0)
如果有其他人遇到这个问题,我最终找到了一个解决方法来刷新multiSelect模板。重新创建包含你在js模板中使用的元素的对象,并像这样调用模板函数: / p>
var templateObject = {
values: currentMultiSelect.value(),
total: currentMultiSelect.value().length
};
currentMultiSelect.options.tagTemplate(templateObject);
因为我只在我的模板中使用total
和values
,这是我在对象中需要的唯一属性