datagrid放在隱藏層不顯示資料的問題
阿新 • • 發佈:2019-02-11
<div id="userDiv" style="display:none;"> <table id="detailUser" class="easyui-datagrid" style="width: 100%;"> <thead data-options="frozen:true,"> <tr> <th width="15%" data-options="align:'center',field:'userName'">使用者名稱</th> <th width="35%" data-options="align:'center',field:'roleNames',formatter: renderRole">所屬角色</th> <th width="10%" data-options="align:'center',field:'deptName',">部門</th> <th width="15%" data-options="align:'center',field:'profession'">專業</th> <th width="10%" data-options="align:'center',field:'city',">地市</th> <th width="10%" data-options="align:'center',field:'district'">區縣</th> </tr> </thead> </table> </div>
把datagrid放在隱藏層中,動作觸發的時候讓這個隱藏層show,但是並沒有顯示出資料,firebugs顯示後臺傳遞過來一條資料,只是datagrid沒有加載出來
$("#detailUser").datagrid({ url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id, nowrap:false, rownumbers:true, fit:true, idField:'id', singleSelect:true, pagination:true, method:'post', loadMsg:'載入中...', emptyMsg:'暫無資料', }); $('#userDiv').show(); $('#gridDetail').window('open');
上圖主要是因為fit:true這個屬性與隱藏層的衝突。如果把fit:true去掉。則顯示為下圖,比上圖稍微好些,只是資料還是沒有顯示出來
然後就百度了一下,有些說是應該把datagrid重新resize一下,
可是我按照上邊程式碼試了一下依然沒有效果,原理的東西我探究不到,最後是給datagrid加了高度,才正常顯示出資料$("#detailUser").datagrid({ url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id, nowrap:false, rownumbers:true, idField:'id', singleSelect:true, pagination:true, loadMsg:'載入中...', emptyMsg:'暫無資料', }); $("#detailUser").datagrid("resize"); $('#resourceDiv').hide(); $('#userDiv').show();
$("#detailUser").datagrid({
url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id,
nowrap:false,
rownumbers:true,
height:540,
idField:'id',
singleSelect:true,
pagination:true,
loadMsg:'載入中...',
emptyMsg:'暫無資料',
});
$('#resourceDiv').hide();
$('#userDiv').show();
後來再次遇到在隱藏層中不顯示資料的問題,然後我設定了高度,但是卻怎麼也顯示不出來資料,於是又用了resize方法發現不是resize方法不管用,而是之前的放錯位置了
圖1
在不給datagrid設定高度的情況下,顯示出來的如上圖1,
$("#dg").datagrid("resize");
$('#task').show();
如上程式碼,顯示效果依然如圖1
但是如果將以上程式碼調換位置,即可正常顯示
$('#task').show();
$("#dg").datagrid("resize");
圖2圖3
並且利用resize可以根據資料顯示的多少來調整高度,這樣顯示更靈活。如圖2和圖3所示
圖4
圖4為利用resize方法並且,給datagrid設定了固定高度之後的效果