添加行后进行编辑时,剑道网格行消失

时间:2018-12-30 14:33:10

标签: javascript kendo-ui kendo-grid

我定义了一个这样的kendo网格,并且在添加一行之后,以某种方式,我所做的第一次编辑单击(在发送到服务器之前)刚添加的行消失了,并且刷新它之后仍然存在。 有什么建议为什么会发生吗?

$("#actionGrid").kendoGrid({          
    scrollable: true,
    height: "200px",
    toolbar: [{name: "create", text: "Add"}],
    editable: {
        mode: "inline",
        confirmation: false
    },
    columns: [
        { field: "order", title: "Order", width: 80 },
        { field: "action", title: "Action name"},           
        { command: ["edit", "destroy"], width: 100 }                       
    ],
    dataSource: {
        schema: {
            model: {
                id:"taskId",
                    fields: {
                        taskId: { type:"number" },
                        order: { type: "number", validation: { min: 0 } },                          
                        action: {}
                    }
                }
            },
         transport: {
                read: {
                    dataType: "json",
                    type: "GET",
                    contentType: "application/json",
                    url: "action/readByPId?pId=" + pId
                },
                destroy: {
                    dataType:"json",
                    type:"POST",
                    contentType:"application/json",
                    url: "action/delete"
                },
                update: {
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json",
                    url: "action/update"
                },
                create: {
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json",
                    url: "action/update"
                },                                     
                parameterMap:function parameterMap(options,type) { 
                    if(type !== "read"){        
                        return JSON.stringify(options);
                    }
                }
            },
         sort: { field: "order", dir: "asc" }
        }
    });

1 个答案:

答案 0 :(得分:1)

Kendo Grid有明确的规则。就像每次创建新记录一样,必须将更新的列表返回给客户端调用。请确保该更新记录是否正在返回。

如果您执行kendo UI的在线离线功能。然后按照以下示例进行演示。 https://demos.telerik.com/kendo-ui/grid/offline

您还没有提到数据通信方法。但是,如果您使用的是纯自定义方式,则必须在执行任何操作后更新数据源。请放入以下代码以获取新数据的更新。

$('#GridName').data('kendoGrid').dataSource.read(); <!--  first reload data source -->

$('#GridName').data('kendoGrid').refresh(); <!--  refresh current UI -->