使用Dojo和jqgrid与codeigniter

时间:2012-02-14 05:48:22

标签: codeigniter jqgrid dojo

我正在使用带有codeigniter的dojo和jqgrid库。它工作正常。我已经为ui和jqgrid实现了dojo,用于列出数据库中的数据。它几乎工作正常。当我接受像插入,更新,删除等操作时,jqgrid不会重新选择chanes。 menas它没有从数据库重新加载数据。这是我的代码。

$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
        }
    });
dijit.byId('dialogAddFactory').hide();
reload_grid(); ]

function reload_grid()
{
    $("#factorylist").trigger("reloadGrid"); 
}
以上ajax调用是在数据库中插入opetration。 并且reload_grid()函数用于重新加载jqgrid。 它将在控制台中向我显示数据是完美的,但它没有在网格中显示我。 有时它会显示我,有时则显示不是。

2 个答案:

答案 0 :(得分:1)

似乎reload_grid()在ajax响应之前执行。在ajax响应之后使用异步或重新加载网格。

方法 - 我:使用异步

$.ajaxSetup({async: false});
$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
        }
});
dijit.byId('dialogAddFactory').hide();
reload_grid();
function reload_grid()
{
    $("#factorylist").trigger("reloadGrid");
}

方法 - II:在ajax响应后重新加载网格。

$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
            dijit.byId('dialogAddFactory').hide();
            reload_grid();
        }
});
function reload_grid()
{
    $("#factorylist").trigger("reloadGrid");
}

答案 1 :(得分:0)

当您从服务器收到成功响应时刷新网格并添加一些调试

会很好
    success:function(data){
       $("#factorylist").trigger("reloadGrid"); 
       console.log('ok'); 
    }