У меня есть модель, вид и контроллер, которые автоматически преобразуют DataTable
в jQGrid
. Он работает как ожидалось, если только DataTable
не имеет только 2 столбца. Данные выводятся, как ожидалось, но Pager_Left
вынуждены иметь ширину 20 пикселей независимо от размера экрана или сетки.jQGrid Pager_left ширина слишком маленькая с несколькими столбцами
Я попытался выполнить код, чтобы найти, где это происходит, но не вижу нигде, я делаю это.
Когда я пошагового, то после этой строки кода:
jQuery("#" + "@Model.GridId").jqGrid('navGrid', '#' + '@Model.PagerId', { edit: false, add: false, del: false, refresh: false }, {}, {}, {}, { multipleSearch: true, multipleGroup: false });
что Pager_Left
сжимается. Если я прокомментирую код, он отобразится так, как ожидалось, но тогда я не получаю свои пользовательские кнопки в пейджере.
Точный же код с более широкой таблицей дает ожидаемые результаты. Я думаю, что jQGrid
имеет некоторую «функцию», которая пытается настроить пейджер, когда не так много столбцов, но я не знаю, как отключить его.
Я могу это сделать:
$('#' + '@Model.PagerId' + '_left').css('width', '');
сразу после кода обижая и показывать, как и ожидалось, но я предпочел бы не взломать его с jQuery
вызова, чтобы удалить стиль после его добавления.
Как отключить «функцию» или переопределить его, используя соответствующие настройки jQGrid
?
Главный вопрос: Я использую взломать с удалением свойства 'width' на левом пейджере тоже в ситуациях, когда начальная ширина сетки слишком мала. Поиск по местам кода, который создает встроенный стиль CSS? Это побочный эффект, а не «особенность». В jqGrid нет специального варианта для отключения функции. Если вы хотите опубликовать отчет об ошибке, вы должны сделать это на [trirand forum] (http://www.trirand.com/blog/?page_id=393/bugs). Только Tony, единственный официальный разработчик jqGrid, имеет право изменить исходный код jqGrid. – Oleg
Мой «главный вопрос» заключался в том, как это сделать без взлома. Тем не менее, похоже, что взлом - мой лучший вариант. – davids
Есть два места кода jqGrid, где вы делаете какое-то «обнаружение функции». См. [Здесь] (https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.formedit.js#L1950-L1961) (и особенно [строка] (https://github.com /tonytomov/jqGrid/blob/v4.6.0/js/grid.formedit.js#L1957)) и [здесь] (https://github.com/tonytomov/jqGrid/blob/v4.6.0/js/grid.base .js # L2139-L2147)). В результате 'width' будет установлен в том случае, если он не нужен. Я нахожу удаление стиля 'width' на левом пейджере без какого-либо побочного эффекта. Поэтому я считаю это достаточно хорошим. – Oleg