将Dojo和jqgrid与codeigniter配合使用

kq0g1dla  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(136)

我正在使用dojo和jqgrid库与codeigniter。它的工作很好。我已经实现了dojo的用户界面和jqgrid从数据库中列出数据。它几乎工作正常。当我采取的操作,如,插入,更新,删除,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 调用是为了在数据库中插入操作。而reload_grid()函数是为了重新加载jqgrid。它会在控制台中向我显示数据是完美的,但它不会在网格中向我显示。有时它会向我显示,有时则不会。

lf3rwulv

lf3rwulv1#

看起来reload_grid()在 AJAX 响应之前执行。要么使用async,要么在ajax响应之后重新加载网格。

方法- I:使用异步

$.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");
}
k4ymrczo

k4ymrczo2#

最好刷新网格,然后从服务器恢复成功响应,并添加一些调试

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

相关问题