我遇到了 Datatables 没有正确使用其 x 轴滚动的问题。
我之前遇到过 IE9 'ghost cell' 问题,我能够修复。但是,现在我遇到了一个问题,即显示我的溢出 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 字段)。这是一个完全有效的 HTML 表格,带有一个 thead/tbody,并且标签之间的所有空格都已被删除(这是修复我之前的幽灵单元问题的原因)。
有人对 Datatables 有任何经验并知道此问题的根本原因吗?
PS:这是一个 MVC2 应用程序(C#.Net),但这个问题似乎与生成此网页的应用程序无关。
更新
我忘了提到以下部分:
表格曾经正确显示;但由于 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)在注释/未注释状态下完美呈现表格。