2024年3月24日发(作者:)

解决当easyui datagrid列很多,当没有查询到数据时不会出现横向滚动条的问题

一:网上有好多方法都是说在onLoadSuccess方法中,当没有数据时增加一行空数

据,然后再隐藏

onLoadSuccess:function(data){

if(==0){

$('#searchLogGrid').datagrid('insertRow',{

row: {

}

});

$("tr[datagrid-row-index='0']").css({"visibility":"hidden"});

}

}

但是我有一些报表牵涉到和并列,怕用这种引起其他问题

二:大概想到了一种思路,就是在onLoadSuccess方法中,若没有查询到数据,则

在存在数据的div中增加一个border为0,宽度为所有列宽之和的div,强制生成滚动条

为了不在每一个页面都更改,所以更改了easyui的源码,在调用datagrid的

onLoadSuccess方法后,判断增加div

我用的是,大概是在8351行

(_5a8,data);

增加如下代码

//add 2015-01-13 当datagrid没有查询到数据时,在存放数据的div中增加一个边

框为0的div,其宽度为所有列宽度之和

//强制生成滚动条

//_:datagrid的id

if(data==null || ==0){

if(_!=undefined && _!='' && $('#'+_).length>0){

var obj = $('#'+_).parent().find('.datagrid-view2 .datagrid-header') ;

if(>0 && ('.datagrid-header-row').length>0){

var width = ('.datagrid-header-row').width() ;

var divStr = '

' ;

if($('#'+_).parent().find('.datagrid-view2 .datagrid-body').length>0)

$('#'+_).parent().find('.datagrid-view2 .datagrid-body').append(divStr)

}

}

}