jqGrid: разные кнопки навигатора в зависимости от статуса входа - PullRequest
1 голос
/ 27 июня 2010

Я хочу использовать разные кнопки навигатора в jqGrid в зависимости от статуса входа в систему.например: если пользователь вошел в систему, появилась кнопка добавления / удаления / редактирования.

Есть идеи?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 27 июня 2010

Вы также можете использовать, например, userdata (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#user_data), чтобы отправить информацию о кнопках, которые вам нужны в навигаторе. userdata должен быть установлен сервером. Затем в отношении:

var navGridParams = jQuery("grid_id").getGridParam('userData');
// var navGridParams = { edit: false, add: false, search: true }

вы можете получить данные, установленные сервером.

Теперь типичный вызов, как:

jQuery("grid_id").navGrid('#pager', { edit: false, add: false, search: true });

Вы должны сделать не после созданияjqGrid, но внутри, чем внутри loadComplete. Таким образом, код может выглядеть следующим образом:

var isNavCreated = false;
jQuery('#list').jqGrid({
    // ...
    loadComplete: function () {
        var grid = jQuery("grid_id");
        if (isNavCreated === false) {
            isNavCreated = true;
            var navGridParams = grid.getGridParam('userData');
            grid.navGrid('#pager', navGridParams);
        }
    },
    // ...
});

Другой вариант, который я вижу, это использовать cookie вместо userdata для отправки информации о navGridParams назад к клиенту.

1 голос
/ 27 июня 2010

Можно добавлять кнопки программно, используя метод navButtonAdd (для панели навигации) и метод toolbarButtonAdd для панели инструментов.Например:

        jQuery("#grid").toolbarButtonAdd('#t_meters',{caption:"MyButton",
         id: "t_my_button",
         title: "Do my button action",
         buttonicon: 'ui-icon-edit',
         onClickButton:function(){
           // Button handle code goes here...
         }
        });

И:

        jQuery("#grid")..navButtonAdd('#pager',{
         id: "t_my_button",
         title: "Do my button action",
         buttonicon: 'ui-icon-edit',
         onClickButton:function(){
           // Button handle code goes here...
         }
        });

Для получения дополнительной информации см. Пользовательские кнопки в вики.

В любом случае, разкод на месте, вы можете определить статус входа на стороне сервера.Затем используйте эти знания для создания клиентского кода, который добавляет кнопки в вашу сетку, только если пользователь должен иметь к ним доступ.

...