2012-05-28 3 views
3

jqgrid에 버그가있는 것 같습니다 (can not resize the last column).jqgrid의 마지막 열의 크기를 조정하십시오.

2009 년에 제기 된 상당히 오래된 문제인 것 같습니다. 최신 jqGrid 샘플에이 문제가있는 것 같습니다 ... 그러나 마지막 열은 그리드 자체의 크기를 조절하기 위해 드래그 할 수 있습니다. . here을 참조하십시오. 3.6에서 새로 워진 내용. 포인터가 이미 수정 된 경우 모든 포인터.

+0

http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridWithColumnChooser.htm 마지막 열의 크기를 조정하십시오. – FosterZ

+0

마지막 열 크기를 늘릴 수 있습니까? – Sarath

+0

방금 ​​예제를 시도해 보았지만 마지막 열의 크기를 늘릴 수있었습니다. 조금 지루했지만. –

답변

0

"RTL Support"예제에서 오른쪽에서 크기를 조정해야하지만 나에게도 괜찮은 크기로 조정됩니다.

크롬을 사용하는 경우 가로 스크롤 막대가 나타나게하는 jqGrid 버그가 있습니다 (jqgrid-does-not-render-correctly-in-chrome-chrome-frame 참조). 이후이 문제는 해결되었지만 데모 페이지는 아직 업데이트되지 않았습니다. 마지막 열의 크기를 조정하기 전에 오른쪽으로 스크롤해야하기 때문에 마지막 열의 크기 조정이 제대로 작동하지 않습니다.

+0

추가 조사에서 나는 너희들이 말하는 것을 얻는 것 같다. 마지막 열은 여전히 ​​크기가 증가하지 않습니다. 그래서 내가해야 할 일은 마지막 열을 증가시키는 것입니다. 다른 열의 크기를 줄이는 것입니다. 그리드의 오른쪽에 약간의 공간이 남겨 지므로 마지막 열을 늘릴 여지가 있습니다. 이것이 의미하는 바는 마지막 칼럼이 그리드 너비까지만 증가 할 수 있다는 것입니다. 다른 모든 칼럼 종류가 그리드 너비를 조절합니다 ... – Sarath

+0

실제로, 시도하면, 마지막 칼럼의 너비를 늘릴 수 있습니다. 매 픽셀마다 약. 문제는 가로 스크롤 막대가 너비 증가와 함께 스크롤하지 않기 때문에 픽셀 단위로 멈추거나 스크롤해야한다는 것입니다. 이 과정을 반복하여 그리드의 폭을 천천히 늘릴 수 있습니다. 제안한 것을 수행하는 것이 훨씬 빠르고 중간의 열 너비를 줄이고 마지막 열의 너비를 조정 한 다음 다시 가운데 열의 크기를 조정하십시오. 나는이 모든 것이 지루하고 불편하다는 데 동의한다. –

+0

시간을내어이 문제를 조사해 주셔서 감사합니다. 예! 매우 지루한 일입니다.나는 사용자를 위해 깔끔한 것을 생각해 낼 수 있는지 조사하고 조사 할 것이다. – Sarath

0

resizeStop을 사용하여 마지막 열의 크기를 조정하려고했는데 다른 사람과 같은 트릭을 사용했습니다. 도움이되기를 바랍니다.

resizeStop (폭, 인덱스) = {VAR amGrid $ ("#의 jsonmap") colModel = $ ("#의 jsonmap")있는 jqGrid ('getGridParam', 'colModel.'); var oW = $ oldWidths [index]; var cW = colModel [index + 1] .width + downCalSize (width, width); $ oldWidths [index + 1] = cW; $ oldWidths [index] = 너비;

$ ('.ui-jqgrid-labels> th : eq ('+ (index + 1) + ')') .css ('width', cW);$ ('# jsonmap .jqgfirstrow> td : eq ('+ (index + 1) + ')') .css ('width', cW); var w = amGrid.jqGrid ('getGridParam', 'width'); $ ('.ui-jqgrid-htable'). css ("width", w); $ ('.ui-jqgrid-btable'). css ("width", w); }

아직도 일반적인 방법을 찾고 있는데, 한 페이지에서 더 많은 테이블을 처리 할 수 ​​있으며 서로 영향을주지 않습니다.

3

내가 해결책을 찾은 것 같습니다. 마지막 열의 크기 조정은 헤더 래퍼 (div.ui-jqgrid-hbox) 영역에서만 수행 할 수 있습니다. 우주 공간에서 크기 조정 과정에서 초점이 사라집니다. 기존 패딩 오른쪽 영역의 기본값이 20 픽셀이므로이 작은 부분에서만 크기를 늘릴 수 있습니다. 또한 테이블 래퍼 영향을 일시적으로 취소해야합니다. 크기 조정 프로세스가 중지되기도합니다.

내 해결책은 다음과 같습니다.나는 당신의 테이블 래퍼 ID가 gbox_DataTable_u 것으로, 가정

1 : CSS는 :

.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 10000px;}

: 2 : 그리드에 추가] 2 이벤트 :

새로운 넓은 패딩 오른쪽 영역을 정의

resizeStart:function(event, index){ $('#gbox_DataTable_u').width($('#gbox_DataTable_u').outerWidth() + 10000);}

resizeStop: function(width, index) {$('#gbox_DataTable_u').width($('#DataTable_u').outerWidth());}

작업 테이블의 예 : http://www.design.atplogic.co.il/aman/philips/users.htm#

0

가장 좋은 방법은 그리드 끝에 빈 unresizable 열을 추가하는 것입니다. jqgrid 생성자를 실행하기 전에 colModel을 직접 확장하여 수동으로 수행하고 있습니다. 문제가되는 것 - 지금까지 드래그 할 수 없었습니다. 이 도움이

colModel.push({align: "left", editable: false, hidden: false, index: "ghostCol", label: " ", name: "ghostCol", resizable: false, sortable: false, type: "text", width: 50}); 

희망 :

다음은 예입니다.

0

2 일 간의 고투 끝에 나는 마침내 해결할 수있는 방법을 발견했다. jqGrid는 전달 된 이벤트 객체를 사용하여 마우스의 위치를 ​​얻고 크기 조정 열의 새 너비를 계산하는 dragMove 이벤트에서 크기 조정 객체를 계산하는 것으로 보입니다. 그러나 드래그가 그리드의 경계를 초과하면 dragMove 이벤트가 슈팅을 멈 춥니 다. 내 작업은 단순히 jQGrid를 수정하여 dragEnd 이벤트에서 오브젝트의 크기를 다시 계산합니다. 다음은 수정 된 코드입니다.

먼저 dragEnd 이벤트를 찾습니다. 있는 DragEvent이 triggerd입니다

... 
dragEnd: function(e) { // add a new input parameter 
this.hDiv.style.cursor = "default"; 
if(this.resizing) { 
    this.dragMove(e); // call dragMove event to calculate resize object 
... 

... 
$(document).mouseup(function (e) { // get the event object 
if(grid.resizing) { grid.dragEnd(e); return false;}// pass event to dragEnv 
    return true; 
}); 
... 

그런 다음 열이 곳 마우스 포인트 크기를 조정 할 수 있어야합니다 ... MouseUp 이벤트를 찾을 수 있습니다.
희망이 도움이 될 것입니다.

관련 문제