我有大量的表格数据,其中最左边的列需要始终显示,每行只占一行 - 这可以通过CSS指令white-space: nowrap
来实现。
我选择了DataTables jQuery plugin及其FixedColumns extension,这非常适合我期待的事情。
但是,Internet Explorer(版本11就是我手边的东西)我看到网格没有正确对齐 - 固定列有一个自己的滚动条,表头不再与它们对应的列完全对齐。
我创建了一个JSFiddle来演示问题 - http://jsfiddle.net/tczwysao/11/。您可以看到,如果您注释掉white-space指令,那么列就会排成一行。但我确实需要最左边的一栏留在一行。
我执行此操作的方式是否有错误,或者有人可以建议解决方法吗?
答案 0 :(得分:0)
在您的某个插件中看起来(gdb) f 1
#1 0x00007ffff567d291 in __Pyx_GetStdout () at pysqlite_ext.c:6121
6121 PyObject *f = PySys_GetObject((char *)"stdout");
(gdb) l
6116 }
6117 }
6118
6119 #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
6120 static PyObject *__Pyx_GetStdout(void) {
6121 PyObject *f = PySys_GetObject((char *)"stdout");
6122 if (!f) {
6123 PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
6124 }
6125 return f;
和DTFC_LeftBodyWrapper
的高度设置不正确(滚动条问题)。如果你带着萤火虫进入那里并移除这些元素上的设定高度,那么该栏就会消失..
至于列标题,这是一个非常糟糕的黑客,但我在标题周围添加了一些填充,并且能够正确设置标题的宽度。
DTFC_LeftBodyLiner
在这里小提一下:http://jsfiddle.net/tczwysao/7/对我来说看起来很好,但我对这种解决方法感到有点油腻。
答案 1 :(得分:0)
您忘记加载Bootstrap并添加适当的表类table table-striped table-bordered
。
请参阅this jsFiddle以了解更正后的代码。
答案 2 :(得分:0)
试试这个,对我有用,解决了nowrap问题
$('#table').DataTable( {
bAutoWidth: false,
fnCreatedRow: function( nRow, aData, iDataIndex ) {
$(nRow).children("td").css("overflow", "hidden");
$(nRow).children("td").css("white-space", "nowrap");
$(nRow).children("td").css("text-overflow", "ellipsis");
},
});