0

我有一个具有多个选项卡的应用程序,并且我在其中一个选项卡中放置了一个 KendoUI 网格,该选项卡的代码位于 .js 文件中。(即视图具有 div 标签,然后将 div 标签呈现到 .js 文件中的 KendoUI 网格)。它的数据源正在从基于 MVC 的应用程序的模型文件中编写的类中获取值。当我移动到任何其他选项卡时,我想让网格可编辑并将更改异步保存到数据源。朝这个方向的任何指示都会很棒...

MVC 应用的视图文件包含:

<div id="example" class="k-content">
            <div id="grid"></div>

div 标签在 .js 文件中呈现到 KendoUi 网格。代码如下:

function createGrid()
{
 $("#grid").kendoGrid({
    dataSource: dataSource,
    height: 430,
    columns: [
    { field:"ProductName",title:"Product Name" },
    { field: "Category", title: "Category"},
    { field: "UnitPrice", title:"Unit Price" },
    editable: true
});
}
function createDataSource()
{
    var dataSource = new kendo.data.DataSource({
    transport: {
    read:  {
            url: BaseUrl + "/Products", //this is the action method in Controller which returns a list of Products which is hardcoded in this method itself.
            dataType: "json"
     },
    autoSync: true,
    schema: {
        model: {
        id: "ProductID",
        fields: {
        ProductID: { editable: false, nullable: true },
        ProductName: { validation: { required: true } },
        Category: { defaultValue: { CategoryID: 1, CategoryName: "Beverages"} },
        UnitPrice: { type: "number", validation: { required: true, min: 1} }
     }
     }
    }
});
}

单击选项卡/按钮时,会调用 createDataSource() 和 createGrid() 函数。我希望在单击任何其他选项卡时将在此可编辑网格中所做的更改保存到数据源。

4

2 回答 2

1

您应该在传输对象上指定更新方法,如下所示;

update:  BaseUrl + "/UpdateProducts",

或者,如果您愿意;

update:  {
    url: BaseUrl + "/UpdateProducts"
},
于 2015-04-16T07:47:26.473 回答
1

数据源的同步方法通过向远程服务发出请求来保存对其所做的任何更改。当您移动到另一个选项卡时,您需要调用它。

于 2013-05-01T03:55:04.070 回答