1. 程式人生 > >jquery-easyui中列表控制元件datagrid沒有資料時顯示列表為空資訊

jquery-easyui中列表控制元件datagrid沒有資料時顯示列表為空資訊

jquery-easyui控制元件datagrid下,如果有資料,會顯示按照列表顯示,如果沒有資料,那麼會顯示如下的介面。沒有任何提示。

為了讓沒有資料的情況下,提示“列表為空”,我們需要設定datagrid屬性。這個屬性就是emptyMsg。預設情況下,這個屬性是為空,沒有值。

當我們設定了emptyMsg這個之後,列表頁面仍然不會顯示,這個應該是easyui的一個bug。

通過控制檯列印資訊,我們確定emptyMsg這個值確實被我們設定了,而且頁面元素中,是有這個類為datagrid-emtpy的節點的。

 

從上面的截圖,可以看出,類datagrid-empty的節點元素高度是25畫素,而datagrid-view的高度僅僅是34也就是說是表頭的高度,這個25畫素高的datagrid-empty的節點被隱藏了。知道了這些,我們就好解決了。

設定datagrid-view的樣式,增加min-height:59px;效果如圖,列表為空的提示出現在列表中。

最終的效果:

 

 本例完整程式碼:

<!doctype html>
<html>
	<head>
	<meta charset="UTF-8"/>
	<link rel="stylesheet" type="text/css" href="../themes/default/easyui.css"/>
	<link rel="stylesheet" type="text/css" href="../themes/icon.css"/>
	<link rel="stylesheet" type="text/css" href="../demo/demo.css"/>
	<style>
		.datagrid-view{min-height:59px;}
	</style>
	<script type="text/javascript" src="../jquery.min.js"></script>
	<script type="text/javascript" src="../jquery.easyui.min.js"></script>
	</head>
	<body class="easyui-layout">
	<div class="easyui-container-fluid">
	<div class="easyui-panel" style="width:100%;border:none;" data-options="title:'使用者列表'">
	<div class="table-wrapper">
	<table class="easyui-datagrid" id="datagrid" style="width:100%;">
		<thead>
		<th data-options="field:'id',align:'center',width:'14%'">ID</th>
		<th data-options="field:'name',align:'center',width:'14%'">Name</th>
		<th data-options="field:'code',align:'center',width:'14%'">Code</th>
		<th data-options="field:'email',align:'center',width:'14%'">Email</th>
		<th data-options="field:'status',align:'center',width:'14%'">Status</th>
		<th data-options="field:'mobile',align:'center',width:'14%'">Mobile</th>
		<th data-options="field:'action',align:'center',width:'16%'">Action</th>
		</thead>
		<tbody>
		</tbody>
	</table>
	</div>
	</div>
	</div>
	<script type="text/javascript">
		$(function(){ 
			$("#datagrid").datagrid({
				pagination:true,
				rownumbers:true,
				emptyMsg:"列表為空",
				method:'get'
			}).datagrid("loadData",{rows:[],total:0});
		});
	</script>
	</body>
</html>