x 軸スクロールを正しく使用していない Datatables に問題があります。
以前、IE9 の「ゴースト セル」の問題に直面していましたが、修正できました。ただし、overflow-x を非表示にしてウィンドウをスクロール可能にする代わりに、overflow-x が表示されるという問題が発生しています。
私のデータテーブルの初期化:
var oTable = $('#tableBP').dataTable({
"bJQueryUI": true,
"sScrollX": "100%",
"sScrollXInner": "200%",
"sScrollY": 300,
"bScrollCollapse": false,
"bFilter": true,
"bSort": false,
"bInfo": false,
"bPaginate": false
});
//This is a Datatables plugin. The issue occurs whether I comment this part or not.
new FixedColumns(oTable, {
"iLeftWidth": 225
});
これは私が直面しているものです:
ただし、IE9互換モードで動作します。残念ながら、ページの他の部分では実行できません。これは下位バージョンとの互換性ですが、IE9 のみの問題であることは明らかです。Chrome、Safari、Opera、Firefox では問題ありません。
そのサイズが非常に大きいため (場合によっては 2000 以上の td フィールド)、テーブルをここに投稿するつもりはありません。これは、thead/tbody を含む完全に有効な HTML テーブルであり、タグ間のすべての空白が削除されています (これにより、以前のゴースト セルの問題が修正されました)。
誰でも Datatables の経験があり、この問題の根本原因を知っていますか?
PS: これは MVC2 アプリ (C#.Net) ですが、この問題は、この Web ページを生成したアプリケーションとは無関係のようです。
アップデート
次の部分について言及するのを忘れていました。
以前はテーブルが正しく表示されていました。しかし、大きなテーブルでの IE9 のゴースト セルの問題により、table/thead/tbody/tr/td タグの間からすべての空白を削除する必要がありました。アプリケーションの HTML 出力で正規表現の置換を強制することで、これを解決しました。
// response is the string with my HTML output which will be written to the browser after this:
string expression = @">[ \t\r\n\v\f]*<td";
response = Regex.Replace(response, expression, @"> <td");
RegEx 置換をコメント アウトすると、データ テーブルのオーバーフローは完全に機能しますが、ゴースト セルの問題に直面し、ミスアラインメントと全面的な醜さを引き起こします。コメントを外すと、すべてのセルが完全に整列されますが、オーバーフローは機能しなくなります。
私が言ったように、問題はIE9にのみ関係します。他のすべてのブラウザー (互換モードの IE9 を含む) は、テーブルをコメント付き/コメントなしの両方の状態で完全にレンダリングします。