我遇到数据表未正确使用其 x 轴滚动的问题。
我之前遇到过 IE9“幽灵单元”问题,我能够解决该问题。但是,现在我遇到了一个问题,即显示了溢出-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,并且标签之间的所有空格都已被删除(这就是解决我之前的幽灵单元问题的原因)。
有人有数据表方面的经验并知道此问题的根本原因吗?
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");
如果我注释掉正则表达式替换,数据表的溢出工作正常,但我面临着幽灵单元问题,这会导致错位和全面的丑陋。 取消注释后,所有单元格都完美对齐,但溢出停止工作。
正如我所说,该问题仅与 IE9 有关。所有其他浏览器(包括兼容模式下的 IE9)都能在注释/未注释状态下完美呈现表格。
最佳答案
经过大量搜索和耐心等待,我已经成功解决了这个问题。
该问题与 Bootstrap 相关。好吧,确切地说不是 Bootstrap,但 Bootstrap.css 所做的是向每个表格添加 max-width: 100%;
。这对于一般布局来说非常有用,但显然 IE9 无法将其与可滚动的 overflow-x
设置结合起来。根据我的经验,IE9 并不真正喜欢最大和最小高度和宽度。
但我仍然要感谢你们所有人的努力,你们让我走上了正确的道路,找到了这个问题的根本原因!
关于jquery - 数据表 - 仅在 IE9 中出现滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391170/