2012-08-10 44 views
1

我创建/编辑/删除一行后,显然需要从服务器刷新网格。 我已经检查了关于重新加载的所有Oleg的aswers,我仍然无法使它工作。我究竟做错了什么?为什么这么简单的事情必须如此复杂。无法用loadonce刷新jqgrid:true

我也想发帖后关闭的形式..但是这是下一步

这里是我的代码:

$(function(){ 
     var roles = null; 
       $.ajax({ 
        'async': false, 
        'global': false, 
        'url': '<?php echo base_url().'utils/Admin_Rest/get_roles'?>', 
        'dataType': 'json', 
        'success': function (data) { 
         roles = data; 
        } 
       }); 
var comptes=$("#Comptes"); 
comptes.jqGrid({ 
      url:'<?php echo base_url().'utils/Admin_rest/get_comptes'?>',  
      mtype : "post",   
      datatype: "json",   
      colNames:['Nom','Prenom','Email','Utilisateur','Telephone', 'Password','Role'], 
      colModel:[ 
       {name:'first_name',index:'first_name',editable:true, editrules: { required: true }, edittype:'text',search:false, align:"center"}, 
       {name:'last_name',index:'last_name',editable:true, edittype:'text', editrules: { required: true }, search:false, align:"center"}, 
       {name:'email',index:'email',editable:true, editrules: { required: true }, edittype:'text',search:false, align:"center"}, 
       {name:'username',index:'username',editable:true, editrules: { required: true }, edittype:'text',search:false, align:"center"}, 
       {name:'phone',index:'phone',editable:true, editrules: { required: true }, edittype:'text',search:false, align:"center"}, 
       {name:'password',index:'password',editable:true, hidden:true, editrules: { edithidden:true }, edittype:'password',search:false, align:"center"},      
       {name:'role',index:'role', editable:true, editrules: {required: true}, edittype:'select', search:true, stype:'select', 
        searchoptions:{ value:roles}, 
        editoptions:{ value:roles}} 
       ], 

      rowNum:10, 
      jsonReader: { 
       root: "rows", 
        page: "page", 
        total: "total", 
        records: "records", 
        repeatitems: false, 
        id: "id", 
        userdata: "userdata" 
      },     
      width: 850, 
      height: "100%", 
      rowList:[10,20,30], 
      pager: '#pager', 
      sortname: 'id', 
      viewrecords: true, 
      loadonce:true, 
      rownumbers: true, 
      gridview: true, 
      pagination:true, 
      editurl: "<?php echo base_url().'utils/Admin_rest/edit_compte'?>", 

      caption:"" 
      }).navGrid('#pager', 
        {edit:true, 
        add: true, 
        del:true,refresh:false}, 
       { // edit options 
        beforeShowForm: function(frm) { 
         comptes.jqGrid('setColProp', 'password', {editrules: {required: false}}); 
        } 
       }, 
       { // add options 
        beforeShowForm: function(frm) { 
         comptes.jqGrid('setColProp', 'password', {editrules: {required: true}}); 
       } 
       }); 

comptes.jqGrid('navGrid', '#pager', {refresh: false}, 
     { // Edit options 
      afterSubmit: function() { 
       $(this).jqGrid('setGridParam', {datatype:'json'}); 
       return [true,'']; // no error 
      } 
     }, 
     { // Add options 
      afterSubmit: function() { 
       $(this).jqGrid('setGridParam', {datatype:'json'}); 
       return [true,'',false]; // no error and no new rowid 
      } 
     }, 
     { // Delete options 
      afterSubmit: function() { 
       $(this).jqGrid('setGridParam', {datatype:'json'}); 
       return [true,'']; // no error 
      } 
     } 
    ); 
}); 

回答

3

看来参数都指定了错误。正确的寻呼参数应该是:

.navGrid('#pager', 
        {edit:true, 
        add: true, 
        del:true,refresh:false}, 
       { // edit options 
        beforeShowForm: function(frm) { 
         comptes.jqGrid('setColProp', 'password', {editrules: {required: false}}); 
        }, 
        afterSubmit: function() { 
         comptes.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 
          return [true,'',false]; // no error and no new rowid 
         } 
       }, 
       { // add options 
        beforeShowForm: function(frm) { 
         comptes.jqGrid('setColProp', 'password', {editrules: {required: true}}); 
        }, 
        afterSubmit: function() { 
          comptes.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 
         return [true,'']; // no error 
        } 
       } , 
       { // delete options 
        afterSubmit: function() { 
          comptes.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 
         return [true,'']; // no error 
        } 
       }  
       );