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

时间:2016-08-01 14:47:52

标签: javascript kendo-ui kendo-grid kendo-datasource

我正在设置如下方案:

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

2)用户可以选择多个结果,然后点击'编辑'按钮将从第一个网格中提取所选项目

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

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

到目前为止,使用各种论坛帖子(herehere)的滴水和单调,我已经设法完成了前两个步骤。

$("#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返回我期望看到的关于所选项目的内容 - 附加dataItem.png。我可以看到gridConfig填充但空行(gridBlankRows.png)。 dataItem dataSource rows with blank content

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
    });
});

我已经用完了有用的参考资料来确定我做错了什么/这里有什么特别的。任何帮助/指导将不胜感激。

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

1 个答案:

答案 0 :(得分:0)

以下示例......

http://dojo.telerik.com/EkiVO

...是...

的修改版本

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

几点说明:

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