2

我有一个使用 tagTemplate 的剑道多选,因此当您选择选项时它会显示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>

标签模板的Javascript:

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

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

4

1 回答 1

0

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

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

因为我只使用total并且values在我的模板中这些是我在我的对象中需要的唯一属性

于 2017-04-27T16:40:10.067 回答