Kendo网格在网格中触发多个控件的数据源事件。(MVVM绑定)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kendo网格在网格中触发多个控件的数据源事件。(MVVM绑定)相关的知识,希望对你有一定的参考价值。

我有一个使用行模板的kendo网格。该模板包含组合框,自动完成...网格也有点击事件的图标。

问题:从组合框/图标单击或任何更改中选择值时,我们正在更新网格数据源的值并调用grid.refresh()。其中刷新整个网格。

此时,它将重新绑定在传输读取函数内获取的所有控件的数据源。

有什么办法可以防止这种情况发生。或者在防止它时,它会导致使用更新的数据刷新网格时出现问题。请在下面找到代码。

validAttributeDataSource = new kendo.data.DataSource({
                                serverFiltering: true,
                                serverPaging: true,
                                pageSize: 20,
                                type: "json",
                                transport: {
                                    read: function (options) {
                                        if (rowObj.IsLoad || isBrowserIE) {

                                            ComboboxReadForAttributeAndValidValues(rowObj, "GetAttributeValidValuesAndAttributesContains", options, row.AttributeId, attributeNm, operatorId);
                                            rowObj.IsLoad = false;
                                        }
                                        else {
                                            options.success(rowObj.OldValues);
                                        }
                                    }
                                }
                            });

用于更新数据源的示例代码

var gridObj = $('#Grid.k-grid').data("kendoGrid");
var selectedRow = $(event.currentTarget).closest("tr");
var dataItem = gridObj.dataItem(selectedRow);
dataItem.CrudType = CruddTypeDelete;
gridObj.refresh();

提前致谢

答案

尝试使用.SET()方法而不是直接赋值。

dataItem.set('CrudType', CruddTypeDelete);

以上是关于Kendo网格在网格中触发多个控件的数据源事件。(MVVM绑定)的主要内容,如果未能解决你的问题,请参考以下文章

在下拉选择的索引更改事件上刷新 Kendo UI 网格

弹出窗口在 Kendo UI 网格中的工作原理以及如何在 MVC4 的 Kendo UI ajax 网格中将控件带入弹出窗口

在 Kendo 网格中绑定事件

kendo 网格控件中的 DropDownList(通过 ClientTemplate)

如何处理 Kendo UI Grid 行双击事件

剑道网格行选择更改事件?