Jqgrid之強(qiáng)大的表格插件應(yīng)用
jqGrid是一款基于jQuery的功能強(qiáng)大的表格插件,使用jqGrid可以輕松實(shí)現(xiàn)前端頁(yè)面與后臺(tái)數(shù)據(jù)進(jìn)行ajax異步通信,jqGrid運(yùn)行速度相當(dāng)快,可以很好的應(yīng)用在一些后臺(tái)管理系統(tǒng)來(lái)管理大量數(shù)據(jù)的場(chǎng)合。

jqGrid特性:
基于jquery UI主題,開(kāi)發(fā)者可以根據(jù)客戶要求更換不同的主題。
兼容目前所有流行的web瀏覽器。
Ajax分頁(yè),可以控制每頁(yè)顯示的記錄數(shù)。
支持XML,JSON,數(shù)組形式的數(shù)據(jù)源。
提供豐富的選項(xiàng)配置及方法事件接口。
支持表格排序,支持拖動(dòng)列、隱藏列。
支持滾動(dòng)加載數(shù)據(jù)。
支持實(shí)時(shí)編輯保存數(shù)據(jù)內(nèi)容。
支持子表格及樹(shù)形表格。
支持多語(yǔ)言。
最關(guān)鍵目前是免費(fèi)的。
如何使用jqGrid
1、首先,您需要到j(luò)qGrid官網(wǎng)下載最新版本的程序包,您可以從這里下載:http://www.trirand.com/blog/
2、在WEB目錄下分別新建css和js兩個(gè)文件夾,放置相關(guān)的css和js文件,創(chuàng)建一個(gè)index.html頁(yè)面文件,用你喜歡的文本編輯器打開(kāi),錄入一下代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Grid</title> <link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.2.custom.css" /> <link rel="stylesheet" type="text/css" href="css/ui.jqgrid.css" /> <script src="js/jquery.js" type="text/javascript"></script> <script src="js/i18n/grid.locale-cn.js" type="text/javascript"></script> <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> </head> <body> ... </body> </html>
3、在body中加入以下代碼:
<table id="list"></table> <div id="pager"></div>
#list用來(lái)加載數(shù)據(jù)列表,#page用來(lái)顯示分頁(yè)條的。
4、調(diào)用jqGrid插件,在頁(yè)面中加入如下js代碼
$("#list").jqGrid({
caption: '手機(jī)產(chǎn)品列表',
url:'server.php',
datatype: "json",
colNames:['編號(hào)','名稱','主屏尺寸','操作系統(tǒng)','電池容量', '價(jià)格(¥)','操作'],
colModel:[
{name:'sn',index:'sn', width:80,align:'center'},
{name:'title',index:'title', width:180},
{name:'size',index:'size', width:120},
{name:'os',index:'os', width:120},
{name:'charge',index:'charge', width:100,align:'center'},
{name:'price',index:'price', width:80,align:'center'},
{name:'opt',index:'opt', width:80, sortable:false, align:'center'}
],
rowNum:10,
rowList:[10,20,30],
pager: '#pager',
sortname: 'id',
autowidth: true,
height:280,
viewrecords: true,
multiselect: true,
multiselectWidth: 25,
sortable:true,
sortorder: "asc"
});
這個(gè)時(shí)候我們預(yù)覽index.html發(fā)現(xiàn)表格外形已經(jīng)呈現(xiàn),就差數(shù)據(jù)填充了。如果此時(shí)你還看不到任何效果,請(qǐng)檢查你的文件路徑是否正確。
5、加載數(shù)據(jù)。
我們采用php讀取mysql數(shù)據(jù),返回json格式的數(shù)據(jù)給jqGrid來(lái)顯示數(shù)據(jù)。我們準(zhǔn)備一張數(shù)據(jù)表用來(lái)記錄手機(jī)產(chǎn)品信息,結(jié)構(gòu)如下:
CREATE TABLE IF NOT EXISTS `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sn` varchar(10) NOT NULL, `title` varchar(60) NOT NULL, `size` varchar(30) NOT NULL, `os` varchar(50) NOT NULL, `charge` varchar(50) DEFAULT NULL, `screen` varchar(50) DEFAULT NULL, `design` varchar(50) DEFAULT NULL, `price` int(10) NOT NULL, `addtime` datetime NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
接著,在server.php中讀取數(shù)據(jù),并輸出json數(shù)據(jù):
//連接數(shù)據(jù)庫(kù)
include_once ('connect.php');
$page = $_GET['page'];
$limit = $_GET['rows'];
$sidx = $_GET['sidx'];
$sord = $_GET['sord'];
if (!$sidx)
$sidx = 1;
$result = mysql_query("SELECT COUNT(*) AS count FROM products where deleted=0");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$count = $row['count'];
if ($count > 0) {
$total_pages = ceil($count / $limit);
} else {
$total_pages = 0;
}
if ($page > $total_pages)
$page = $total_pages;
$start = $limit * $page - $limit;
$SQL = "SELECT * FROM products WHERE deleted=0 ORDER BY $sidx $sord LIMIT $start , $limit";
$result = mysql_query($SQL) or die("Couldn t execute query." . mysql_error());
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$responce->rows[$i]['id'] = $row[id];
$opt = "<a href='edit.php'>修改</a>";
$responce->rows[$i]['cell'] = array (
$row[sn],
$row[title],
$row[size],
$row[os],
$row[charge],
$row[price],
$opt
);
$i++;
}
echo json_encode($responce);
至此,如果你往數(shù)據(jù)表中錄入數(shù)據(jù)后,就可以在頁(yè)面上顯示數(shù)據(jù)表了,然后你可以排序、分頁(yè)操作了。接下來(lái)我會(huì)將jqGrid的選項(xiàng)說(shuō)明整理成文,分享給大家,然后從項(xiàng)目實(shí)際應(yīng)用出發(fā),舉例講解增加刪除、查看、查找數(shù)據(jù)等業(yè)務(wù)的應(yīng)用。
相關(guān)文章
jQuery學(xué)習(xí)筆記之DOM對(duì)象和jQuery對(duì)象
DOM對(duì)象和jQuery對(duì)象的操作時(shí)很重要的,是jquery與頁(yè)面元素互動(dòng)的基礎(chǔ)。2010-12-12
jQuery 常見(jiàn)學(xué)習(xí)網(wǎng)站與參考書
打算學(xué)習(xí)jquery的朋友可以參下如下網(wǎng)上,參考書嗎,可以看下 鋒利的jquery腳本之家提供電子版下載。2009-11-11
Jquery鼠標(biāo)放上去顯示全名的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇Jquery鼠標(biāo)放上去顯示全名的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
jQuery EasyUI tree 使用拖拽時(shí)遇到的錯(cuò)誤小結(jié)
在我使用tree拖拽時(shí)總是失敗,控制臺(tái)輸出了很多錯(cuò)誤。經(jīng)過(guò)問(wèn)題跟蹤分析最終找到的錯(cuò)誤原因,下面小編給大家分享下,感興趣的朋友參考下2016-10-10
jQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)遮罩并高亮顯示效果
本文為大家詳細(xì)介紹下使用jQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)遮罩高亮顯示效果,想必這種效果在網(wǎng)上大家都有見(jiàn)到過(guò),下面是具體的示例,感興趣的各位可以參考下哈,希望對(duì)大家有所幫助2013-07-07

