Создание другого источника данных в событии, связанном с сеткой, для последующей фильтрации дочерних записей - PullRequest
0 голосов
/ 10 октября 2018

Я хочу проверить, есть ли у строки сетки связанные записи в дочерней таблице / сетке.Я попытался подключить источник данных дочерней сетки к событию привязки данных родительской сетки.Две сетки связаны столбцом ParentId (который является первичным ключом родительской сетки).В событии привязки данных родительской сетки, как я могу сначала прочитать все данные из дочерней таблицы в datasource1, чтобы потом я мог использовать это для поиска дочерних элементов строк родительской сетки?

Grid_OnDataBound = function (e) {       
            var dataSource1 = new kendo.data.DataSource({
                serverFiltering: false,
                transport: {
                    read: {
                        /* omitted for brevity */
                        dataType: "json",
                        url: "@Url.Action("Items_Read", "Home")"
                    }
                }
            });
            dataSource1.read();

            
            // get the root grid
            var grid = $("#parent_grid").getKendoGrid();
            // get its data source
            var dataSource = grid.dataSource;
            var items = e.sender.items(); // get all rows

            

            items.each(function () {
                var row = $(this);
                var dataItem = e.sender.dataItem(row);
                
                var parentId = dataItem.ParentId;

                var children = new kendo.data.DataSource({  
                    data: dataSource1.data(),
                    // filter to leave only the child items
                    filter: {
                        field: "ParentId",
                        operator: "eq",
                        value: parentId
                    }
                });
                children.read();
                // check if there are any child items
                if (children.view().length == 0) {                
                    row.find(".k-hierarchy-cell").html("");
                }
            })
            
        };
...