关注 kendo 网格中第二页的一个单元格
Focus on a cell in second page in kendo grid
我需要使用“下一个错误”按钮将焦点放在 kendo-Grid 上的错误单元格上。
但是我在将焦点放在单元格上时遇到了问题。如果错误单元格位于 kendo 网格的第二页。
我的代码:
function nextErr(){
var grid = angular.element('#myGrid').data('kendoGrid');
var dataItems = grid.dataSource.data();
var index;
var uid;
for(var i=0; i < dataItems.length; i++){
if(!isNullOrUndefined(dataItems[i].errors)
&& !angular.element.isEmptyObject(dataItems[i].errors)){
index = i;
uid = dataItems[i].uid;
break;
}
}
var errorCell = angular.element("tr[data-uid='"+ uid +"'] td[data-err-msg != 'undefined']")[0];
grid.editCell(errorCell);
}
如果有人实现了类似的东西请告诉我
对于类似的问题,我使用了 Kendo UI Grid select by data item 的想法。这是我自己稍微修改过的函数,用于在网格中查找数据项。
function findDataItem(dataSource, dataItem) {
if (!dataItem) {
return null;
}
var view = kendo.data.Query.process(dataSource.data(), {
filter: dataSource.filter(),
sort: dataSource.sort()
}).data;
var index = -1;
// find the index of the matching dataItem
var ID = 'YOUR_ID_FIELD_NAME';
for (var x = 0; x < view.length; x++) {
if (view[x][ID] == dataItem[ID]) {
index = x;
break;
}
}
if (index === -1) {
return null;
}
var page = Math.floor(index / dataSource.pageSize());
var targetIndex = index - (page * dataSource.pageSize());
return {
page: ++page,
index: targetIndex,
}
}
然后您可以使用返回的 page
在网格中显示相应的页面 dataSource.page(page)
。
希望对您有所帮助。
我需要使用“下一个错误”按钮将焦点放在 kendo-Grid 上的错误单元格上。
但是我在将焦点放在单元格上时遇到了问题。如果错误单元格位于 kendo 网格的第二页。
我的代码:
function nextErr(){
var grid = angular.element('#myGrid').data('kendoGrid');
var dataItems = grid.dataSource.data();
var index;
var uid;
for(var i=0; i < dataItems.length; i++){
if(!isNullOrUndefined(dataItems[i].errors)
&& !angular.element.isEmptyObject(dataItems[i].errors)){
index = i;
uid = dataItems[i].uid;
break;
}
}
var errorCell = angular.element("tr[data-uid='"+ uid +"'] td[data-err-msg != 'undefined']")[0];
grid.editCell(errorCell);
}
如果有人实现了类似的东西请告诉我
对于类似的问题,我使用了 Kendo UI Grid select by data item 的想法。这是我自己稍微修改过的函数,用于在网格中查找数据项。
function findDataItem(dataSource, dataItem) {
if (!dataItem) {
return null;
}
var view = kendo.data.Query.process(dataSource.data(), {
filter: dataSource.filter(),
sort: dataSource.sort()
}).data;
var index = -1;
// find the index of the matching dataItem
var ID = 'YOUR_ID_FIELD_NAME';
for (var x = 0; x < view.length; x++) {
if (view[x][ID] == dataItem[ID]) {
index = x;
break;
}
}
if (index === -1) {
return null;
}
var page = Math.floor(index / dataSource.pageSize());
var targetIndex = index - (page * dataSource.pageSize());
return {
page: ++page,
index: targetIndex,
}
}
然后您可以使用返回的 page
在网格中显示相应的页面 dataSource.page(page)
。
希望对您有所帮助。