gpt4 book ai didi

asp.net-mvc-3 - 范围刷新 + 部分刷新 + Kendo 数据源 + Kendo 网格 + WebSync

转载 作者:行者123 更新时间:2023-11-28 02:03:58 27 4
gpt4 key购买 nike

我们一直在使用以下技术实现网站。

客户端: Html5、KendoUI、WebSync(发布、订阅)

服务器: ASP.net MVC 3.0

网格对每一行都有特定的操作。例如,我们需要在选中特定行的复选框后,通过单击操作菜单来更新每一行的状态。

当我们在菜单上执行此操作时,我们向 MVC Controller 发送 ajax 请求以更新数据库中的记录,它会简单地返回 true 给客户端。这里,我们使用了 WebSync 发布者-订阅者 模型当此请求完成时实际通知客户端,因为这些操作需要一些时间来处理。

当我们从 Web Sync 获得回调时,我们更新剑道数据网格如下。

onMoveActionMessageReceived = function (data) {

$("#resultGrid").data("kendoGrid").dataSource.read();
WebSyncClient.UnsubscribeToMoveTransactionActions($('#moveTransactionIdTxt').val());
}

由于我们在网格数据的数据库中有超过 40 万条记录,并且我们使用分页,因此该解决方案是一个耗时的解决方案,并且会影响用户体验。

有没有用给定的数据项(即不是总数据源)刷新剑道数据源。(网格范围更新)?或者还有其他解决方案吗?

最佳答案

我在 Kendo + WebSync 中找到了范围更新的解决方案。在服务器完成该过程后,webSync 通知负责更新客户端数据源的refreshSearchData 函数。 getSearchResultViewItem 函数从数据库返回数据项,我已经从客户端更新了数据源。

 refreshSearchData = function (entityId, entityType) {

getSearchResultViewItem(entityId, entityType, function (data) {

var kendoGrid = $("#resultGrid").data("kendoGrid");

if (kendoGrid) {
if ($('#SelectedTypeId')[0].value == entityType) {
var items = kendoGrid.dataSource.data().toJSON();

for (var i = 0; i < items.length; i++) {
if (items[i].Id == data.Id) {
items[i] = data;
break;
}
}
kendoGrid.dataSource.data(items);
}
}
});

};

getSearchResultViewItem = function (entityId, entityType, callback) {
$.get(baseUrl + 'Search/GetSearchViewDtoById', { id: entityId, searchTypeId: entityId }, function (data) {
callback(data);
});
};

关于asp.net-mvc-3 - 范围刷新 + 部分刷新 + Kendo 数据源 + Kendo 网格 + WebSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com