Jqgrid之强大的表格插件应用


Posted in Javascript onDecember 02, 2015

jqGrid是一款基于jQuery的功能强大的表格插件,使用jqGrid可以轻松实现前端页面与后台数据进行ajax异步通信,jqGrid运行速度相当快,可以很好的应用在一些后台管理系统来管理大量数据的场合。

Jqgrid之强大的表格插件应用

jqGrid特性:

基于jquery UI主题,开发者可以根据客户要求更换不同的主题。
兼容目前所有流行的web浏览器。
Ajax分页,可以控制每页显示的记录数。
支持XML,JSON,数组形式的数据源。
提供丰富的选项配置及方法事件接口。
支持表格排序,支持拖动列、隐藏列。
支持滚动加载数据。
支持实时编辑保存数据内容。
支持子表格及树形表格。
支持多语言。
最关键目前是免费的。

如何使用jqGrid

1、首先,您需要到jqGrid官网下载最新版本的程序包,您可以从这里下载:http://www.trirand.com/blog/
2、在WEB目录下分别新建css和js两个文件夹,放置相关的css和js文件,创建一个index.html页面文件,用你喜欢的文本编辑器打开,录入一下代码:

<!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用来加载数据列表,#page用来显示分页条的。

4、调用jqGrid插件,在页面中加入如下js代码

$("#list").jqGrid({ 
  caption: '手机产品列表', 
  url:'server.php', 
  datatype: "json", 
    colNames:['编号','名称','主屏尺寸','操作系统','电池容量', '价格(¥)','操作'], 
    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" 
 });

这个时候我们预览index.html发现表格外形已经呈现,就差数据填充了。如果此时你还看不到任何效果,请检查你的文件路径是否正确。

5、加载数据。

我们采用php读取mysql数据,返回json格式的数据给jqGrid来显示数据。我们准备一张数据表用来记录手机产品信息,结构如下:

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中读取数据,并输出json数据:

//连接数据库 
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);

至此,如果你往数据表中录入数据后,就可以在页面上显示数据表了,然后你可以排序、分页操作了。接下来我会将jqGrid的选项说明整理成文,分享给大家,然后从项目实际应用出发,举例讲解增加删除、查看、查找数据等业务的应用。

Javascript 相关文章推荐
jquery 上下滚动广告
Jun 17 Javascript
JQuery 学习技巧总结
May 21 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
js读取csv文件并使用json显示出来
Jan 09 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
Jul 13 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
整理Javascript事件响应学习笔记
Dec 02 #Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 #Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 #Javascript
原生JavaScript实现异步多文件上传
Dec 02 #Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 #Javascript
日常收藏的jquery技巧
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 #Javascript
You might like
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
关于python 跨域处理方式详解
2020/03/28 Python
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
某公司.Net方向面试题
2014/04/24 面试题
个性大学生自我评价
2013/12/04 职场文书
党员批评与自我批评
2014/02/12 职场文书
阳光体育活动方案
2014/02/16 职场文书
外贸专业求职信
2014/03/09 职场文书
公司合作协议书范本
2014/04/18 职场文书
个人简历自荐信
2014/06/26 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
信仰观后感
2015/06/03 职场文书
图书借阅制度范本
2015/08/06 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
浅谈python数据类型及其操作
2021/05/25 Python