首页 > 解决方案 > Jqgrid在回调函数上更改导航属性

问题描述

我尝试在回调函数中更改 jqgrid 上的导航栏属性,但没有成功。

网格在用户选择一个时间段后显示。取决于时间段是打开还是关闭,用户可以或不能编辑、添加、删除行。所以导航栏需要动态改变属性。

我的代码如下所示:

 $('#mygrid').jqGrid({

// some properties of my grid that works fine
pager : '#gridpager'

});

$("#mygrid").bind("jqGridLoadComplete",function(){
   $.ajax({
       url: 'checkifperiodopen.php',
       data: {
          $("#period").val()
       },
       success: function(data){
          if(period==='open'){
             jQuery("#mygrid").jqGrid('navGrid','#gridpager',{add:false,edit:false,del:true,search:true,refresh:true});
          }
         if(period==='close'){ 
            jQuery("#mygrid").jqGrid('navGrid','#gridpager',{add:true,edit:true,del:true,search:true,refresh:true});
         }
       }
 });
});
 $('#validChossenPeriod').click(function () {
   ajax call to get data on choosen period
     success:function(data){
                    $("#mygrid").jqGrid('clearGridData');
                    $("#mygrid").jqGrid('setGridParam', { datatype: 'local'});
                   $("#mygrid").jqGrid('setGridParam', { data: data});
                   $("#mygrid").trigger('reloadGrid');
       }
  });

标签: dynamicpropertiesjqgridnavbar

解决方案


为什么这么复杂?还有另一种明确的方法可以做到这一点

var view_buttons = true;
if(condition_to_hide) {
    view_buttons = false; 
}
$("#mygrid").jqGrid('navGrid','#gridpager', { add:view_buttons, edit:view_buttons, del:view_buttons, search:true, refresh:true});

推荐阅读