jEasyUI擴充行顯示細節


jQuery EasyUI 資料網格 - 擴充行顯示細節

資料網格(datagrid)可以改變它的視圖(view)來顯示不同的效果。使用詳細視圖,資料網格(datagrid)可以在資料行的左邊顯示展開按鈕("+" 或 "-")。使用者可以展開行來顯示附加的詳細資訊。

82.png

步驟1:建立資料網格(DataGrid)

	<table id="dg" style="width:500px;height:250px"
			url="datagrid8_getdata.php"
			pagination="true" sortName="itemid" sortOrder="desc"
			title="DataGrid - Expand Row"
			singleSelect="true" fitColumns="true">
		<thead>
			<tr>
				<th field="itemid" width="60">Item ID</th>
				<th field="productid" width="80">Product ID</th>
				<th field="listprice" align="right" width="70">List Price</th>
				<th field="unitcost" align="right" width="70">Unit Cost</th>
				<th field="status" width="50" align="center">Status</th>
			</tr>
		</thead>
	</table>

步驟2:為資料網格(DataGrid)設定詳細視圖

為了使用詳細視圖,請記得在頁面頭部引用視圖腳本檔案。

<script type="text/javascript" src="http://www.w3cschool.cc/try/jeasyui/datagrid-detailview.js"></script>
$('#dg').datagrid({
	view: detailview,
	detailFormatter:function(index,row){
		return '<div class="ddv" style="padding:5px 0"></div>';
	},
	onExpandRow: function(index,row){
		var ddv = $(this).datagrid('getRowDetail',index).find('div.ddv');
		ddv.panel({
			border:false,
			cache:false,
			href:'datagrid21_getdetail.php?itemid='+row.itemid,
			onLoad:function(){
				$('#dg').datagrid('fixDetailRowHeight',index);
			}
		});
		$('#dg').datagrid('fixDetailRowHeight',index);
	}
});

我們定義 'detailFormatter' 函數,告訴資料網格(datagrid)如何渲染詳細視圖。 在這種情況下,我們返回一個簡單的 '<div>' 元素,它將充當詳細內容的容器。 請注意,詳細資訊為空。當使用者點擊展開按鈕('+')時,onExpandRow 事件將會被觸發。 所以我們可以寫一些程式碼來載入 ajax 詳細內容。 最後我們呼叫 'fixDetailRowHeight' 方法來固定當詳細內容載入時的行高度。

步驟3:伺服器端程式碼

datagrid21_getdetail.php
<?php
	include_once 'conn.php';

	$itemid = mysql_real_escape_string($_REQUEST['itemid']);

	$rs = mysql_query("select * from item where itemid='$itemid'");
	$item = mysql_fetch_array($rs);
?>

<table class="dv-table" border="0" style="width:100%;">
	<tr>
		<td rowspan="3" style="width:60px">
			<?php
				$aa = explode('-',$itemid);
				$serno = $aa[1];
				$img = "images/shirt$serno.gif";
				echo "<img src=\"$img\" style=\"width:60px;margin-right:20px\" />";
			?>
		</td>
		<td class="dv-label">Item ID: </td>
		<td><?php echo $item['itemid'];?></td>
		<td class="dv-label">Product ID:</td>
		<td><?php echo $item['productid'];?></td>
	</tr>
	<tr>
		<td class="dv-label">List Price: </td>
		<td><?php echo $item['listprice'];?></td>
		<td class="dv-label">Unit Cost:</td>
		<td><?php echo $item['unitcost'];?></td>
	</tr>
	<tr>
		<td class="dv-label">Attribute: </td>
		<td colspan="3"><?php echo $item['attr1'];?></td>
	</tr>
</table>

下載jQuery EasyUI 實例

##jeasyui-datagrid-datagrid21.zip

#