2017-04-11 40 views
0

最新のfree-jqgridを使用しています。jqGridフリーズ・ヘッダ

私たちのすべてのグリッドを固定(フリーズ)ヘッダーにしたいと考えています:垂直スクロールバーはグリッド内にあり、コンテンツのみをスクロールします。

私が知っているように、これは固定グリッドの高さを使用して達成できますが、高さをユーザーの画面の高さに合わせるとよいでしょう。 (何らかの形でページのサイズを変更する必要がありますか?)

これを実装する最良の方法は何ですか?

例:https://jsfiddle.net/qrxkuvfz/1/

設定width: 400は悪い仕事をしていません。 スクロールをグリッドの内側にしたいだけです。高さ - 利用可能な最大値。

+0

@Oleg、よろしいですか? – freeek

+0

1)私にメッセージを書いてもらいたいなら、私の古い回答**に "@Oleg"というコメントを書くべきです。 Stackoverflowが "Oleg"という名前を私のユーザID [315935](http://stackoverflow.com/users/315935/oleg)にマップできる場合のみです。 Olegという名前の他の約2000人のユーザーが存在することを理解する必要があります([ここ](http://stackoverflow.com/search?q=Oleg)参照)。 2)まず仕事をしなければならない。あなたは私からの即刻の答えを期待すべきではありません。 3)あなたが何をし、何が必要なのか、より詳細な説明を投稿してください。写真とJavaScriptコードは非常に役に立ちます。 – Oleg

+0

現在無料のjqGridを正しく使用しているかどうかはわかりません。 jqGridを正しく使用した場合、あなたが記述する問題はまったく存在しないはずです。実際にはJavaScriptコードを投稿する必要があります。単純なグリッドやTreeGrid、グリッド、データのグループ化などを使っていますか?ローカルデータ( 'datatype:" local "')でグリッドを埋めるか、サーバーサイドページングを使用しますか? pager/toppagerをまったく使用しますか?どの値に 'rowNum'と' height'パラメータがありますか? – Oleg

答えて

1

私が正しくあなたの要件を理解していれば、その後、あなただけ追加する必要が ``オプション:

はコードを参照してください。例えば、修飾されたデモhttps://jsfiddle.net/OlegKi/qrxkuvfz/2/

rowNum: 15, 
maxHeight: 330, 

maxHeightrowNumで指定されたすべての15行を表示するために十分な大きさで使用しているが、ユーザが増す場合。

また、あなたは、いくつかの数値や"auto"にjqGridのheightオプションを設定するsetGridHeightメソッドを使用onPagingコールバックを(the wiki articleを参照)、使用することができますがoptionsパラメータのnewRowNumcurrentRowNum特性に依存します。

+0

はい、唯一の質問は、ブラウザのウィンドウサイズに 'maxHeight'または' height'を設定することです。最初のロード時に、 'auto'を使うときと同じように、ページ全体がグリッドに収まるようにします。もしそうでなければ、私たちは共通の高さofcを選択するだけです。 – freeek

+1

@freeek:jqGridを作成する前に* widow height *を取得し、対応する 'rowNum'、' maxHeight'または 'height'を使用することができます。 'window.innerHeight'はあなたが使うことができる基本値です。このページには、おそらく 'rowNum'、' maxHeight'または 'height'の最適値を減らすページ上にナビゲーションバーのような他の要素があります。 'window.innerHeight'の値を少し小さくし、' rowNum'、 'maxHeight'、または' height'の対応する値を設定する必要があります。 – Oleg

+0

OK、既に組み込みのメソッドがいくつかあるかもしれません。今それは明らかです。 – freeek

1

基本的には、CSSを使用してヘッダー(フリーズ)を修正し、JavaScript/jqueryビットを使用してtbodyに高さを割り当てて、表が画面に収まるようにすることができます。

また、overflowプロパティを追加して、特定の高さの後にCSSのスクロールバーを有効にします。 jqGridへ

$("tbody").height($(window).innerHeight() + "px");
table { 
 
    position: relative; 
 
    width: 700px; 
 
    background-color: #aaa; 
 
    overflow: hidden; 
 
    border-collapse: collapse; 
 
} 
 

 

 
/*thead*/ 
 

 
thead { 
 
    position: relative; 
 
    display: block; 
 
    /*seperates the header from the body allowing it to be positioned*/ 
 
    width: 700px; 
 
    overflow: visible; 
 
} 
 

 
thead th { 
 
    background-color: #99a; 
 
    min-width: 120px; 
 
    height: 36px; 
 
    min-height: 36px; 
 
    border: 1px solid #222; 
 
} 
 

 
thead th:nth-child(1) { 
 
    /*first cell in the header*/ 
 
    position: relative; 
 
    display: block; 
 
    background-color: #88b; 
 
} 
 

 

 
/*tbody*/ 
 

 
tbody { 
 
    display: block; 
 
    width: 700px; 
 
    overflow-y: auto; 
 
} 
 

 
tbody td { 
 
    background-color: #bbc; 
 
    min-width: 120px; 
 
    border: 1px solid #222; 
 
    height: 36px; 
 
    min-height: 36px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<body> 
 
    <table> 
 
    <thead> 
 
     <tr> 
 
     <th>Name</th> 
 
     <th>Town</th> 
 
     <th>County</th> 
 
     <th>Age</th> 
 
     <th>Profession</th> 
 
     <th>Anual Income</th> 
 
     <th>Matital Status</th> 
 
     <th>Children</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>John Smith</td> 
 
     <td>Macelsfield</td> 
 
     <td>Cheshire</td> 
 
     <td>52</td> 
 
     <td>Brewer</td> 
 
     <td>£47,000</td> 
 
     <td>Married</td> 
 
     <td>2</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Jenny Jones</td> 
 
     <td>Threlkeld</td> 
 
     <td>Cumbria</td> 
 
     <td>34</td> 
 
     <td>Shepherdess</td> 
 
     <td>£28,000</td> 
 
     <td>Single</td> 
 
     <td>0</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Peter Frampton</td> 
 
     <td>Avebury</td> 
 
     <td>Wiltshire</td> 
 
     <td>57</td> 
 
     <td>Musician</td> 
 
     <td>£124,000</td> 
 
     <td>Married</td> 
 
     <td>4</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Simon King</td> 
 
     <td>Malvern</td> 
 
     <td>Worchestershire</td> 
 
     <td>48</td> 
 
     <td>Naturalist</td> 
 
     <td>£65,000</td> 
 
     <td>Married</td> 
 
     <td>2</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Lucy Diamond</td> 
 
     <td>St Albans</td> 
 
     <td>Hertfordshire</td> 
 
     <td>67</td> 
 
     <td>Pharmasist</td> 
 
     <td>Retired</td> 
 
     <td>Married</td> 
 
     <td>3</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Austin Stevenson</td> 
 
     <td>Edinburgh</td> 
 
     <td>Lothian</td> 
 
     <td>36</td> 
 
     <td>Vigilante</td> 
 
     <td>£86,000</td> 
 
     <td>Single</td> 
 
     <td>Unknown</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Wilma Rubble</td> 
 
     <td>Bedford</td> 
 
     <td>Bedfordshire</td> 
 
     <td>43</td> 
 
     <td>Housewife</td> 
 
     <td>N/A</td> 
 
     <td>Married</td> 
 
     <td>1</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Kat Dibble</td> 
 
     <td>Manhattan</td> 
 
     <td>New York</td> 
 
     <td>55</td> 
 
     <td>Policewoman</td> 
 
     <td>$36,000</td> 
 
     <td>Single</td> 
 
     <td>1</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Henry Bolingbroke</td> 
 
     <td>Bolingbroke</td> 
 
     <td>Lincolnshire</td> 
 
     <td>45</td> 
 
     <td>Landowner</td> 
 
     <td>Lots</td> 
 
     <td>Married</td> 
 
     <td>6</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Alan Brisingamen</td> 
 
     <td>Alderley</td> 
 
     <td>Cheshire</td> 
 
     <td>352</td> 
 
     <td>Arcanist</td> 
 
     <td>A pile of gems</td> 
 
     <td>Single</td> 
 
     <td>0</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</body>

+0

さて、これは大丈夫ですが、独自のスタイルを既に持っているので、jqGridグリッドにはもう少し具体的です。 – freeek

+0

はい、デモを作成して、デモ自体でこれを実装しようとします。 – nashcheez

+0

私は短いデモを作った – freeek