DataGrid——行高不起作用

问题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'类似的样式。

原文地址:https://www.cnblogs.com/SunBlog/p/5664018.html