1

在创建/编辑/删除一行后,我显然需要从服务器刷新网格。我已经检查了 Oleg 关于重新加载的所有问题,但我仍然无法使其正常工作。我究竟做错了什么?这么简单的事情为什么要这么复杂。

我也想在发布后关闭表格..但这是下一步

这是我的代码:

$(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
            }
        }
    );
});
4

1 回答 1

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
                    }
                }       
               );
于 2012-08-10T08:16:46.387 回答