jqGrid с автоматической высотой;но имеет максимальную высоту и полосы прокрутки - PullRequest
24 голосов
/ 05 мая 2011

Есть ли способ, чтобы jqGrid автоматически настраивал его высоту на количество строк; но когда достигнута определенная высота, высота которой больше не может увеличиваться и появляется вертикальная полоса прокрутки?

Спасибо D

Ответы [ 9 ]

31 голосов
/ 05 мая 2011

Я бы порекомендовал вам установить "max-height" свойство в bdiv jqGrid и использовать height:'100%' или height:'auto':

$("#list").parents('div.ui-jqgrid-bdiv').css("max-height","300px");

Свойство "max-height" будет не использоваться IE6 , но более современные веб-браузеры будут использовать его.

ОБНОВЛЕНО: В бесплатном jqGrid введено в версии 4.10.0 новое свойство: maxHeight, которое в точности соответствует описанному выше. Таким образом, можно просто использовать maxHeight: 300 вместо ручной настройки max-height родительского div.ui-jqgrid-bdiv.

12 голосов
/ 21 февраля 2014

попробуйте

jQuery("#yourid").jqGrid({  
    ........
    height:'auto'
}); 
2 голосов
/ 17 февраля 2017
.ui-jqgrid-view {
    max-height: 642px;
}
.ui-jqgrid-bdiv {
    overflow-y: scroll !important;
    max-height: 600px !important;
}

эта работа на моем jqGrid

2 голосов
/ 21 августа 2014

Попробуйте эти методы

1. Определить высоту внутри сетки

                        $("#griname").jqGrid(
                                {
                                    rowNum : 1000,
                                    viewrecords : true,
                                    gridview : true,
                                    autoencode : true,
                                    loadonce : true,
                                    width: "100%",
                                    height: 300,
                            });

2.Эту функцию можно использовать для поддержания фиксированной высоты в заранее заданном значении.

$(window).resize(function() {

if (typeof($gridname) !== 'undefined' && $("#gridname").length > 0) {
    $discrepanciesResultGrid.setGridHeight(
        $(window).height() - $("#gridname").position().top - 210
    );
    $gridname.setGridWidth($("body").width() - $("#anothercomponenetname").width() -    50);
    }
1 голос
/ 29 января 2016

Наш пользовательский интерфейс решил проблему (разверните список до 300 пикселей, если имеется более 10 вложений, покажите вертикальную полосу прокрутки) с помощью css

#gview_list_Attachments .ui-jqgrid-bdiv{
    max-height: 300px;
    overflow-y: visible;
}

300px в нашем случае высота 10 пунктов. Конечно, используя jquery, вы можете определить высоту 1 элемента и умножить на 10. Но это решение было быстрым, простым и решило нашу проблему.

0 голосов
/ 07 мая 2019

В зависимости от ваших потребностей, вы можете использовать min-hight, max-height или height в качестве нижнего кода в части сценария просмотра или страницы:

$(window).load(
    function () {
        $('.ui-jqgrid-bdiv').css("min-height", "150px");
    }
)

Я использую $ (window) .load ( из-за загрузки его после всех сценариев.

0 голосов
/ 12 июня 2018

Я исправил это, используя атрибут высоты jqgrid как 30% (высота: '30%') и следующий css:

.ui-jqgrid-bdiv {
                min-height:150px;
        }
0 голосов
/ 22 июня 2015

Попробуйте это

 $("#list1").parents(".ui-jqgrid-bdiv").css('height', jQuery("#list1").css('height'));

Этот код отрегулирует высоту сетки в соответствии с количеством строк в сетке

0 голосов
/ 26 августа 2012

Добавьте это:

var height = $(window).height();
$('.ui-jqgrid-bdiv').height(height);

после загрузки jqgrid на нужную страницу, это сработало для меня.

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