今天解決了一個bug,因為datagrid有多列,可是當沒有數(shù)據(jù)的時候,后面的列無法通過滾動條拉動來顯示,比較麻煩,而需求要求沒有數(shù)據(jù)也要拉動滾動條查看后面有什么列,一開始在網(wǎng)上找了一些資料,發(fā)現(xiàn)都不可以,有一個實現(xiàn)生成空的table,也就是數(shù)據(jù)行,然后將其隱藏。
后來查看了一下,easyui datagrid中顯示數(shù)據(jù)的區(qū)域是一個div,沒有數(shù)據(jù)的時候沒有滾動條,當時想找一些當div中內(nèi)容為空,用js生成滾動條,并且控制滾動條的長短,都找不到。
使用生成數(shù)據(jù)行,然后隱藏的方式會導致沒有數(shù)據(jù)的時候,其pagination也會顯示有一條數(shù)據(jù),而且當有數(shù)據(jù)的時候,數(shù)據(jù)不顯示了,后來想到一種方法,獲取其總的標題列的寬度(標題列是<td>標簽,外層是<tr>標簽,也就是<tr>標簽的寬度),然后在顯示數(shù)據(jù)的div中加入一個div,讓其寬度與其總的標題列的寬度一樣,然后然div的border為0px,也就是不顯示出來(或者可以隱藏),就有滾動條,也不會導致有數(shù)據(jù)時無法顯示數(shù)據(jù),沒數(shù)據(jù)的時候pagination不會顯示有一條數(shù)據(jù)。
以jquery-easyui-1.3.3\demo\datagrid中的aligncolumns.html為例:
<table class="easyui-datagrid" title="Aligning Columns in DataGrid" style="width:700px;height:250px"
data-options="singleSelect:true,collapsible:true,url:'../datagrid/datagrid_data1.json'">這里width為700的時候顯示如下圖,
把 width改為500,顯示如下圖:
使用下面的代碼
var dv2 = $(".datagrid-view2");
dv2.children(".datagrid-body").html("<div style='width:"+$(".datagrid-header-row").width()+"px;border:solid 1px;height:1px;'></div>");
結(jié)果如下圖
dv2.children(".datagrid-body").html("<div style='width:"+$(".datagrid-header-row").width()+"px;border:solid 1px;height:1px;'></div>");
改為
dv2.children(".datagrid-body").html("<div style='width:"+$(".datagrid-header-row").width()+"px;border:solid 0px;height:1px;'></div>");
結(jié)果如下圖
聯(lián)系客服