2011-01-25 18 views
1

Webアプリケーションでjqgridを使用しています。サーバー側を実行するページングとソートのための機能が組み込まれているため、検索結果をレンダリングしています。以前はTablesorterを使用していましたが、それはクライアント側を操作していました。なぜjqgrid、flexigrid、ingridはすべてヘッダとデータに別々のテーブルを使用しますか?

私たちには、テーブルのスタイルを作成し、jqgridで同じように見えるようにしたプロジェクトのWebデザイナーがいました。それは働いているが、それほどではない。ヘッダー列とデータ列の位置がずれているという問題があります。私たちはCSSを手にしましたが、うまくいかないようです。スクロールバーが表示されない場合は、スクロールバーが表示されることがあります。

とにかく、問題の一部は、jqgridが列ヘッダーに1つのテーブルを使用し、データ自体にもう1つのテーブルを使用するようです。これらのテーブルは、それぞれdivタグで囲まれています。 フレキシグリッドイングリッドのようないくつかの代替案を見てきましたが、ヘッダーとデータの別々のテーブルでも同じアプローチを使用しています。

なぜこのアプローチが使用されているか説明できる人がいれば嬉しいです。なぜ標準のtableタグが、ヘッダのためにthの行を持ち、データのためにtdが代わりに使用できないのだろうと思っていましたか?

+0

列ヘッダーの配置に関心がある場合は、http://stackoverflow.com/questions/3003187/jquery-jqgrid-how-to-set-alignment-of-grid-header-cells/3006853#3006853を参照してください。 – Oleg

+0

問題は、実際には列内のテキストの整列ではなく、ヘッダー列とデータ列が互いに整列していることです。たとえば、3番目のヘッダーが2番目と3番目のデータ列に跨っている可能性があります。 – GiddyUpHorsey

+0

とにかく、私はCSSを微調整し、各データ値をdivにラップすることで問題を解決しました。私たちのデザイナーは、jqgridが発行したHTMLとCSSをまったく_get_しませんでした。私の疑問は依然として残っていますが、なぜ前述のグリッドコンポーネントでマルチテーブルアプローチを使用していますか? – GiddyUpHorsey

答えて

2

これらのプラグインがヘッダーとデータに別々のテーブルを使用する理由は、固定ヘッダースクロールを許可することです。あなたが知っている限り、同じテーブルにヘッダーとデータを持つことはできませんが、スクロール中にヘッダーを先頭に固定してください。

また、アラインメントの問題については、可能であれば、これらのプラグインにはそれぞれの列の幅を設定できる設定があり、データとヘッダーの列が正しく整列するように設定されていると思います。