2009-10-15 5 views
7

내 응용 프로그램에 세로 스크롤 막대가 필요한 행이 충분하거나 없을 수도있는 여러 jqGrid가 있습니다. 그러나 행이 생성 된 후에 동적으로 이러한 모눈에 추가 될 수 있으므로 모눈에 결국 스크롤바가 필요할 수 있습니다.jqGrid - 항상 세로 스크롤 막대를 표시하는 방법이 있습니까?

그리드에 스크롤바가 필요한 행이 충분하지 않은 경우 그리드의 오른쪽에 빈 공간이 있습니다. 나는 이것을 어떻게 든 고쳐야한다. 항상 수직 스크롤바를 보여 주거나, 필요할 때 어떻게 든 동적으로 추가한다.

내가 그리드의 .ui-있는 jqGrid - bdiv의 DIV에 다음 CSS를 추가하는 시도

:

$("#mygrid").closest(".ui-jqgrid-bdiv").attr("style", 
$("#mygrid").closest(".ui-jqgrid-bdiv").attr("style") + " overflow-y: scroll; "); 

이 다음 jQuery를 (코드, 못생긴 내가 아는)를 사용하여

overflow-y: scroll; 

Firefox 및 Chrome에서는 잘 작동하지만 IE에서는 그리드의 아무 행이나 추가해도 그리드 하단에 세로 스크롤 막대가 나타나지 않습니다.

도움을 주시면 감사하겠습니다.

답변

14

overflow-y은 CSS3, 그리고 그것을 아직 완전히 관련된 다른 마크 업없이,

그래서, 난 당신이 이것에 대해 할 수있는 유일한 2 CSS의 일을 생각 (... 한숨) IE에 의해 지원되지 않는 사용하는 것입니다 overflow: auto (브라우저가 결정할 것임) 또는 overflow: scroll 중 하나를 선택하면 세로 및 가로 스크롤 막대가 모두 강제됩니다.

해결 방법은 전체 높이가 가장 큰 div에 전체 눈금을 래핑하여 브라우저 창 + 1px와 동일하게 설정할 수 있습니다. 그렇게하면 세로 스크롤 막대가 강제로 표시됩니다.

모든 높이의 브라우저를 설정하는 것은 까다로울 수 있지만, 대부분의 브라우저에서이 방법이 효과적이라는 것을 알았습니다.

.the-wrapper{ 
    height: auto !important; /* for real browsers*/ 
    height: 601px;   /* IE6 will use this a min-height. Use any height you need - you can even set this using JavaScript depending on the browser window height */ 
    min-height: 601px;  /* for real browsers - same value as height */ 
} 

물론 이것은 그리드 아래에 약간의 공간을 추가합니다. 탑승을 환영합니다!

+0

이것은 정확히 내가 추천하려고했던 것이다. 나는 투표를 남기면 +1 할 것입니다. –

+1

안녕하세요 밥, 어쨌든 고마워요 :)하지만 내일은 다시 오면 괜찮을까요? P – Seb

1

눈금에 height 속성을 설정 했습니까? 높이가 설정되어 있지 않으면 IE에서 스크롤 막대를 사용하여 심술 궂을 수 있습니다. ,

+0

고마워,하지만 난 여전히 IE에서 작동하도록 스크롤바를 얻을 수 없다 ... –

1

jqGrid에는 scrollOffset 옵션이 있습니다.

0으로 설정하면 빈 공간이 사라집니다.

+0

맞습니다. 문제는 표시 할 수있는 것보다 많은 행이 있으면 스크롤 막대가 필요하다는 것입니다. 그러나 그리드는이를 알 수 없습니다. 데이터를 검색 한 후 그러나 그리드가 생성되면 scrollOffset 옵션을 변경할 수 없습니다. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options –

+0

더 이상 작동하지 않습니다. 하향 투표하지 않고 공유 만합니다. – catbadger

관련 문제