ajax调用后重新加载Kendo Grid

时间:2014-10-19 21:35:55

标签: jquery ajax kendo-ui grid

我创建了一个kendo网格,可以从带有json数据的url读取。这是代码,它运作正常

$('#grid').kendoGrid({
    dataSource: {
      transport: {
         read: {
         url: "http://localhost/CoreProcess/proceso/getusers",
         dataType: "json",
         },
         update: {
         url: "http://localhost/CoreProcess/usuario/uptdate",
         dataType: "json"
         },
         destroy: {
         url: "http://localhost/CoreProcess/usuario/delete",
         dataType: "json"
         }
     },
     pageSize: 10
     },
     pageable: {
         refresh: true,
         pageSizes: true,
         buttonCount: 5
     },
    editable: "inline",
    columns: [{ title: "Nombre", field: "NOMBRE" },
              { title: "Apellidos", field: "APELLIDOS"},
              { title: "Email", field: "EMAIL"},
              { command: ["edit", "destroy"], title: "Acciones"}],          
});

现在在同一页面中,我有一个小形式,通过对php方法的ajax调用(使用yii框架)将新数据插入数据库

$.ajax({
    type: "POST",
    url: "http://localhost/CoreProcess/proceso/agregarparticipantes/uuid/" + uuid,
    data:
    {
    post_participante: participante,
    post_apellidos: apellidos,
    post_email: email,
    },
    success: function(result)
    {
    alert(result);
    var dSource = $('#grid').data('kendoGrid').dataSource;
    dSource.transport.options.read.url = "http://localhost/CoreProcess/proceso/getusers";
    dSource.read();
    }
});

在数据库中创建新记录也可以正常工作,但问题是之后我想用新信息重新加载网格,或许再次读取我应该更改的json url。我尝试了很多像

这样的东西
$('#grid').data('kendoGrid').dataSource.read();
$('#grid').data('kendoGrid').dataSource.refresh();

但是没什么,我是剑道的小伙子......有人可以帮助我吗?谢谢所有

2 个答案:

答案 0 :(得分:2)

最后我得到了修复它并没有任何与剑道有关的东西。我使用Yii框架并在数据库中保存记录后你必须刷新它以便可以加载新信息,这是一个简单的错误,但我是如何使用剑道新手我不知道它是错还是正确。

简单的指示

$('#grid').data('kendoGrid').dataSource.read();

对我来说已经足够了

感谢大家的支持,我将继续使用这个神奇的工具。请参阅nexts问题xD

答案 1 :(得分:1)

你在dataSource读取设置中有默认的HTTP方法'GET',它正在缓存查询数据。解决方案一:

read: {
    url: "http://localhost/CoreProcess/proceso/getusers",
    dataType: "json",
    type: "POST",
},

解决方案二:

read: {
    url: "http://localhost/CoreProcess/proceso/getusers",
    dataType: "json",
    cache: false,
},

然后只使用dataSource.read()方法。