проблема с отображением панели инструментов поиска в jqgrid - PullRequest
0 голосов
/ 30 марта 2011

Привет, у меня проблемы с отображением панели инструментов поиска для jqgird, я попробовал несколько методов, которые были предложены онлайн, и я вижу, что несколько человек успешно использовали то, что я использую, может кто-нибудь, пожалуйста, посмотрите на мой код и дайте мне знатьгде и чего мне не хватает, я не добавил никакого кода в класс контроллера для поиска, также я использую эти сценарии: jquery-1.4.2.min.js, jquery.jqGrid.js, jquery.searchFilter.js, jqModal.js, jqDnR.js (первоначально взят с сайта PHill HAACK) Я думаю, может быть, это скрипты, которые я использую, или, может быть, CSS я использую grid.css из основной темы из того же примера веб-сайта, упомянутого выше.

Любой совет будет оценен.

jQuery(document).ready(function() {
    jQuery("#list").jqGrid({
        url: '/Home/DynamicGridData/',
        datatype: 'json',
        mtype: 'POST',
        ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
        search: true,
        multipleSearch: true,
        colNames: ['Edit', 'AlertId', 'Policy', 'PolicyRule', 'Alert Status', 'Alert Code', 'Message', 'Category'],
        colModel: [
      { name: 'Edit', edittype: 'select', formatter: 'showlink', sortable: false },
      { name: 'AlertId', index: 'AlertId', sortable: true, sorttype: 'int', autoFit: true, align: 'left', hidden: true },
      { name: 'Policy', index: 'Policy.Name', sortable: true, autoFit: true, align: 'left' },
      { name: 'Policy Rule', index: 'PolicyRule', sortable: true, sorttype: 'text', autoFit: true, align: 'left' },
      { name: 'Alert Status', index: 'AlertStatus.status', sortable: true, sorttype: 'text', autoFit: true, align: 'left' },
      { name: 'Alert Code', index: 'Code', sortable: true, sorttype: 'text', align: 'left', autoFit: true },
      { name: 'Message', index: 'Message', sortable: true, sorttype: 'text', autoFit: true },
      { name: 'Category', index: 'Category.name', sortable: true, sorttype: 'text', align: 'left', autoFit: true}],
        pager:  jQuery('#pager'),
        rowNum: 10,
        rowList: [10, 60, 100],
        scroll: true,
        sortname: 'AlertId',
        sortorder: 'asc',
        gridview: true,
        autowidth: true,
        rownumbers: true,
        viewrecords: true,
        imgpath: '/scripts/themes/basic/images',
        caption: 'Nebo System Alerts'
    });

    jQuery("#list").jqGrid('navGrid', '#pager', { add: false, edit: false, del: false }, {}, {}, {}, { multipleSearch: true, overlay: false });
    jQuery("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true });
    jQuery("#list").jqGrid('navButtonAdd', '#pager', { caption: "", title: "Toggle Search Bar", buttonicon: 'ui-icon-pin-s',
    onClickButton: function() { $("#list")[0].toggleToolbar() } 
});

1 Ответ

2 голосов
/ 31 марта 2011

Если панель инструментов поиска не отображается в вашем коде, тогда вы выбираете не все компоненты jqGrid, которые вам нужны во время загрузки jqGrid (см. здесь ). Вы должны проверить «Пользовательский» базовый модуль, чтобы иметь возможность использовать метод filterToolbar.

Вы не включили всю HTML-страницу в порядок загрузки jqGrid и не указали, какую версию jqGrid вы использовали и в каком веб-браузере вы тестировали. Если вы используете версию разработчика jqGrid, я рекомендую вам установить модули jqGrid напрямую (см. здесь ) и не использовать jquery.jqGrid.js.

Еще одна важная проблема в вашем коде: вы используете столбцы в colModel со свойством name с пробелами (name: 'Policy Rule', name: 'Alert Status', name: 'Alert Code'). Это не может работать. Вы должны выбрать любые другие имена. Если ваши данные JSON имеют свойства с пробелами (что не рекомендуется) и вы не можете изменить код сервера, вам следует использовать атрибут jsonmap с соответствующим именем из входных данных JSON (например, name: 'PolicyRule', jsonmap:'Policy Rule').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...