将选定的行分配为其他网格数据源

Assigning selected rows as other grid datasource

我正在设置如下场景:

1) 在第一个网格上向用户显示现有结果

2) 用户可以 select 多个结果并单击 'Edit' 按钮,这将从第一个网格中提取 selected 项目

3)第二个网格将填充用户从第一个网格select编辑的行,并允许他们对内容进行编辑

4)按保存将更新结果并显示第一个网格,其中的行已更新

到目前为止,通过各种论坛帖子 (here and here) 的点点滴滴,我已经设法完成了前两个步骤。

$("#editButton").kendoButton({
    click: function () {
        // extract selected results from the grid and send along with transition
        var gridResults = $("#resultGrid").data("kendoGrid"); // sourceGrid
        var gridConfig = $("#resultConfigGrid").data("kendoGrid"); // destinationGrid
        gridResults.select().each(function () {
            var dataItem = gridResults.dataItem($(this));
            gridConfig.dataSource.add(dataItem);
        });
        gridConfig.refresh();
        transitionToConfigGrid();
    }
});

dataItem returns 我希望看到的关于 selected 项目的内容 - 附加 dataItem.png。我可以看到 gridConfig 正在填充,但有空白行 (gridBlankRows.png)。

gridConfig 设置:

$(document).ready(function () {

    // build the custom column schema based on the number of lots - this can vary 
    var columnSchema = [];
    columnSchema.push({ title: 'Date Time'});
    for(var i = 0; i < $("#maxNumLots").data("value"); ++i)
    {
        columnSchema.push({ 
            title: 'Lot ' + i,
            columns: [{
                title: 'Count'
            }, {
                title: 'Mean'
            }, {
                title: 'SD'
            }]
        });
    }
    columnSchema.push({ title: 'Comment'});
    columnSchema.push({ title: 'Review Comment' });

    // build the datasource with CU operations
    var configDataSource = new kendo.data.DataSource({
        transport: {
            create: function(options) {},
            update: function(options) {}
        }
    });

    $("#resultConfigGrid").kendoGrid({        
        columns: columnSchema,
        editable: true
    });
});

我 运行 没有有用的参考 material 来确定我做错了什么/这里可能有什么突出的地方。任何 help/guidance 将不胜感激。

此外,我还需要 'Add New' 结果的功能。如果可能的话,我想使用相同的网格(带有空白 datasource)来完成此操作。然后用户可以将行添加到第二个网格并使用与更新功能类似的功能进行保存。因此,如果有任何方法可以将其纳入响应中,我将不胜感激。

下面的例子...

http://dojo.telerik.com/EkiVO

...是...的修改版本

http://docs.telerik.com/kendo-ui/framework/datasource/crud#examples

一些注意事项:

  • 如果要将 plain objects 添加到第二个网格的数据源 (gridConfig.dataSource.add(dataItem).toJSON();) 或 Kendo UI 模型对象 (gridConfig.dataSource.add(dataItem);),这很重要。在第一种情况下,您需要将更新后的值从 Grid2 传回 Grid1,否则会自动发生;
  • 添加、删除或更改其数据项后无需refresh()第二个 Grid
  • 两个Grid dataSources都必须配置CRUD操作,可以按照CRUD documentation
  • Grid 不会在重新绑定时保留其选择,因此如果您想在更改某些值后保留第一个 Grid 中的选择,请使用 Persist Row Selection
  • 中描述的方法