问题1:rowStyler 设置行高不起作用:
在 DataGrid 组件中,提供了 rowStyler 函数,用于设置行的css 样式,但是实践发现,对于height设置不起作用。跟踪代码发现如下:
function _58b(trs1,trs2){
for(var i=0;i<trs2.length;i++){
var tr1=$(trs1[i]);
var tr2=$(trs2[i]);
tr1.css("height","");
tr2.css("height","");
var _591=Math.max(tr1.height(),tr2.height());
tr1.css("height",_591);
tr2.css("height",_591);
}
};
在1.4版本中位于7855行。
将一下两行注释掉即可:
tr1.css("height","");
tr2.css("height","");
问题2:使用上述方法之后,行高只对内容区域起作用,对表头仍然不起作用,这是因为 rowStyler 函数只是在绑定数据的时候生成新行的时候被调用,在初始化,生成表头的过程中没有被调用。
解决方法如下:
在调用 datagrid 函数初始化之后,调用如下方法:
function setHeaderHeight(divGrid,height) { divGrid.find(".datagrid-view").find("tr").css("height", height); var view = divGrid.find(".datagrid-view"); var tr1 = view.find(".datagrid-view1").find(".datagrid-htable .datagrid-header-row"); var tr2 = view.find(".datagrid-view2").find(".datagrid-htable .datagrid-header-row"); _58b(tr1, tr2); function _58b(trs1, trs2) { for (var i = 0; i < trs2.length; i++) { var tr1 = $(trs1[i]); var tr2 = $(trs2[i]); var _591 = Math.max(tr1.height(), tr2.height()); tr1.css("height", _591); tr2.css("height", _591); } }; }
其中 divGrid为表格的div容器的jquery对象。height则为'20px'类似的样式。