Javascript 在Kendo数据源自定义筛选期间访问整行

Javascript 在Kendo数据源自定义筛选期间访问整行,javascript,angular,kendo-grid,kendo-datasource,Javascript,Angular,Kendo Grid,Kendo Datasource,我正在尝试将自定义过滤器应用于剑道数据源,以便它使用一些列的计算进行过滤。 例如,筛选field1值大于field2值filterValue百分比的所有项目 dataSource.filter({ field: 'field1', operator: function(value) { return value * 100 / valueFromField2 > filterValue; }, value: filterValue }) 所

我正在尝试将自定义过滤器应用于剑道数据源,以便它使用一些列的计算进行过滤。 例如,筛选field1值大于field2值filterValue百分比的所有项目

dataSource.filter({
    field: 'field1',
    operator: function(value) {
        return value * 100 / valueFromField2 > filterValue;
    },
    value: filterValue
})
所以基本上我需要从操作符函数中访问其他行字段


有什么想法可以实现吗?

我不知道如何将其应用到您的案例中,但如果您想访问剑道网格中的其他行,您可以:

var grid = $("#grid").data("kendoGrid"); // The complete grid
var row = grid.tbody.find("tr:eq(0)"); // Row index. Starts from 0. Excludes header row
var data = grid.dataItem(row); // 'data' now has all fields for 'row'
考虑一个示例网格:

column1|column2
---------------
----1--|--One--
----2--|--Two--
---------------
因此,对于
eq(0)

更多信息:


希望这有帮助:)

我不知道如何将其应用到您的案例中,但如果您想访问剑道网格中的其他行,您可以:

var grid = $("#grid").data("kendoGrid"); // The complete grid
var row = grid.tbody.find("tr:eq(0)"); // Row index. Starts from 0. Excludes header row
var data = grid.dataItem(row); // 'data' now has all fields for 'row'
考虑一个示例网格:

column1|column2
---------------
----1--|--One--
----2--|--Two--
---------------
因此,对于
eq(0)

更多信息:


希望这有帮助:)

我认为您需要迭代每个字段值

比如:

function (value) {

        var rowData = this.dataSource.view();

        for (var i = 0; i < rowData.length; i++) { // Iterate each row
            $.each(rowData[i].items, function (index, object) { // Iterate each object
                var uid = object.uid;

                // DO YOUR LOGIC HERE

            });
        }
    }
函数(值){
var rowData=this.dataSource.view();
对于(var i=0;i
我认为您需要迭代每个字段值

比如:

function (value) {

        var rowData = this.dataSource.view();

        for (var i = 0; i < rowData.length; i++) { // Iterate each row
            $.each(rowData[i].items, function (index, object) { // Iterate each object
                var uid = object.uid;

                // DO YOUR LOGIC HERE

            });
        }
    }
函数(值){
var rowData=this.dataSource.view();
对于(var i=0;i
感谢您的评论。恐怕我无法使用此解决方案,因为我不知道在筛选过程中的行索引,并且在每次筛选方法调用中提取行都会影响性能,特别是对于大数据集。感谢您的评论。恐怕我不能使用这个解决方案,因为我不知道在筛选过程中的行索引,提取每个筛选方法调用上的行应该会影响性能,特别是对于大数据集。