내 jqGrid를 축소하고 확장 할 수있는 행의 수를 기준으로합니다. 현재 10 개의 행이 있다고 가정 해 봅시다. jqGrid의 높이는 10 개의 행으로 축소됩니다 (텅 빈 빈 행이 노출되지 않도록).행 수에 따라 jqGrid 크기를 조정 하시겠습니까?
너무 많은 행이있는 경우 그리드의 높이가 최대 '높이'값으로 확장되고 스크롤 막대가 나타납니다.
내 jqGrid를 축소하고 확장 할 수있는 행의 수를 기준으로합니다. 현재 10 개의 행이 있다고 가정 해 봅시다. jqGrid의 높이는 10 개의 행으로 축소됩니다 (텅 빈 빈 행이 노출되지 않도록).행 수에 따라 jqGrid 크기를 조정 하시겠습니까?
너무 많은 행이있는 경우 그리드의 높이가 최대 '높이'값으로 확장되고 스크롤 막대가 나타납니다.
그리드에 내장되어 있습니다. height
을 100 %로 설정합니다. There's a demo on this page 당신은 "고급 가면 -> 크기 조정
전화 afterInsertRow에서 아래의 기능과 행 삭제하는 경우 :
function adjustHeight(grid, maxHeight){
var height = grid.height();
if (height>maxHeight)height = maxHeight;
grid.setGridHeight(height);
}
시도해보십시오있는 jqGrid 콜백 함수 loadComplete
에서
jQuery(".ui-jqgrid-bdiv").css('height', jQuery("#bigset").css('height'));
#bigset
을.. 내가 사용하는 테이블에 대한 id
입니다. 이것은 나를 위해 완벽하게 작동했습니다.
훌륭한 작품입니다. 허용 된 대답의 한 가지 잠재적 인 문제는 100 %가 때때로 요소의 맨 아래에 약간의 공간을 추가한다는 것입니다 (다른 요소가 높이에 영향을 미치기 때문에 추측합니다). 그 높이가 어디에서 왔는지를 알 수 없게 된 후에,이 솔루션은 나를 위해 일했습니다. – Stuart
높이 100 % wo 데모에서 좋은 rked, 그것은 나를 위해 작동하지 않았다. 그리드가 훨씬 커졌고 어쩌면 부모 div의 높이를 차지하려고했습니다. Amit의 솔루션이 완벽하게 작동했습니다. 감사합니다. (저는 여기에 기고자로 새로 나서 어떤 표를 붙이기 위해 더 높은 평판이 필요합니다 :))
나는 비슷한 문제에 직면 해 왔으며 아무 해결책도 완벽하게 작용하지 못했습니다. 일부는 작동하지만 스크롤바는 없습니다. 그래서 여기
내가 무엇을했는지 있습니다 :
jQuery("#grid").jqGrid('setGridHeight', Math.min(300,parseInt(jQuery(".ui-jqgrid-btable").css('height'))));
이 코드는 loadComplete 처리기에 배치해야하고 그것을 잘 작동합니다. Math.min의 첫 번째 매개 변수는 목록에 채울 충분한 데이터가있을 때 원하는 높이입니다. 이 값은 그리드의 높이로 설정해야합니다. 이 스크립트는 실제 높이와 그리드의 원하는 높이 중 최소값을 선택합니다. 행 수가 충분하지 않으면 그리드 높이가 축소됩니다. 그렇지 않으면 항상 같은 높이가됩니다!
다음은 Amit의 솔루션에 기반한 일반적인 방법입니다. 표시 할 최대 행 수를 지정할 수 있습니다. 그리드의 헤더 높이를 사용하여 최대 높이를 계산합니다. 행이 머리글과 같은 높이가 아닌 경우에는 집게가 필요합니다. 희망이 도움이됩니다.
function resizeGridHeight(grid, maxRows) {
// this method will resize a grid's height based on the number of elements in the grid
// example method call: resizeGridHeight($("#XYZ"), 5)
// where XYZ is the id of the grid's table element
// DISCLAIMER: this method is not heavily tested, YMMV
// gview_XYZ is a div that contains the header and body divs
var gviewSelector = '#gview_' + grid.attr('id');
var headerSelector = gviewSelector + ' .ui-jqgrid-hdiv';
var bodySelector = gviewSelector + ' .ui-jqgrid-bdiv';
// use the header's height as a base for calculating the max height of the body
var headerHeight = parseInt($(headerSelector).css('height'));
var maxHeight = maxRows * headerHeight;
// grid.css('height') is updated by jqGrid whenever rows are added to the grid
var gridHeight = parseInt(grid.css('height'));
var height = Math.min(gridHeight, maxHeight);
$(bodySelector).css('height', height);
}
var ids = grid.jqGrid('getDataIDs');
//setting height for grid to display 15 rows at a time
if (ids.length > 15) {
var rowHeight = $("#"+gridId +" tr").eq(1).height();
$("#"+gridId).jqGrid('setGridHeight', rowHeight * 15 , true);
} else {
//if rows are less than 15 then setting height to 100%
$("#"+gridId).jqGrid('setGridHeight', "100%", true);
}
3.6의 새로운 기능입니다 loadComplete의 함수 내에서 코드 아래에 추가 하시겠습니까? 최대 높이를 설정하는 방법? 그리드가 전체 화면을 채우는 것을 원하지 않습니다. –
아니요, 3.6보다 훨씬 오래되었습니다. 최대 높이가 지원되지 않습니다. AFAIK (행 수 제한 제외). 당신은 그것을 위해 더 열심히 일하거나 스크롤 할 수있는 무언가에 넣어야 할 것입니다. –
행 수가 제어 할 수 없기 때문에 행 수를 제한 할 수 없습니다. 그러나 부분적으로 나의 필요를 충족시키고 다른 대답이 없기 때문에 나는이 대답을 받아들입니다. –