2015-12-17 1 views
0

Я работаю над ASP.net MVC. У меня много динамических и статических jq-сеток в моем приложении и проблема горизонтальной полосы прокрутки.Горизонтальная проблема прокрутки для динамического jqGrid

я следующий код для перелива собственности:

.ui-jqgrid .ui-jqgrid-bdiv { 
    overflow-y: auto !important; 
    overflow-x: auto !important; 
} 

.ui-jqgrid .ui-jqgrid-btable { 
    overflow-y: auto !important; 
    overflow-x: auto !important; 
} 

я поставил autowidth=true;. Я не могу установить shrinkToFit=false, так как у меня есть другой код на размер сетки, который также изменит размер столбца.

Как я установил свойство переполнения для авто, мне также нужно поведение полосы прокрутки.

При загрузке сетки в первый раз горизонтальная полоса прокрутки не отображается, что является правильным, после изменения размера окна сетка также изменяет размеры с помощью столбцов и горизонтальной полосы прокрутки, что является правильным. но когда я пытался максимизировать экран, горизонтальная полоса прокрутки не должна появляться, что не происходит. Он по-прежнему показывает полосу прокрутки. Может ли кто-нибудь мне помочь?

+0

Извините, но вы просто описать то, что вы делаете без какого-либо кода. Трудно понять вас только на основе информации. Прежде всего, вы должны всегда писать, какую версию jqGrid вы используете, и из которой fork ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), [Guriddo jqGrid JS] (http: // guriddo. net /? page_id = 103334) или старый jqGrid в версии <= 4.7). Вы пишете о изменении размера сетки, но вы не публикуете код '$ (window) .bind (« resize », ...)', который вы используете (например, в [ответе] (http: // stackoverflow. com/a/34226305/315935), например). Более подробная информация действительно требуется. – Oleg

+0

Вы пишете о «динамических» сетках, но неясно, что вы имеете в виду. Существует много способов динамического построения сетки. Используете ли вы 'jqPivot', плагин OData, загружаете colModel по отдельному запросу' $ .ajax' или динамически создаете jqGrid каким-то другим способом? Пожалуйста, напишите более подробную информацию. – Oleg

+0

Я использую бесплатный jqGrid. и я не использую $ (window) .bind ("resize", ...). В событии gridComplete я устанавливаю ширину сетки с помощью функции setGridWidth. –

ответ

0

Как вы уже используете autowidth:true; в настройках сетки, вы можете использовать setGridWidth метода в resize случае window.
Вы должны использовать это:

$(window).on("resize", function() { 
    var $grid = $("#gridID"), 
     newWidth = $grid.closest(".ui-jqgrid").parent().width(); 
    $grid.jqGrid("setGridWidth", newWidth, true); 
}).resize(); // <----triggers the resize on dom ready.