Jqgrid изменить свойства nav на функцию обратного вызова - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь изменить свойства панели навигации в 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');
       }
  });

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Почему так сложно?Есть другой простой способ сделать это

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});
0 голосов
/ 05 декабря 2018

Я наконец нашел ответ по show или скрыл div, включающий кнопку navgrid:

            grid = $("#mygrid");
            gid = $.jgrid.jqID(grid[0].id);
            var $tdadd = $('#add_' + gid);
            var $tdedit = $('#edit_' + gid);
            var $tddel = $('#del_' + gid);

          $("#mygrid").jqGrid('navGrid','#gridpager',{add:true,edit:true,del:true,search:true,refresh:true});

           condition if false = 
                     $tdadd.hide();
                     $tdedit.hide();
                     $tddel.hide();
            if true =
                   $tdadd.show();
                   $tdedit.show();
                   $tddel.show();   
...