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 相关文章推荐
Firebug 字幕文件JSON地址获取代码
Oct 28 Javascript
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
javascript-解决mongoose数据查询的异步操作
Dec 22 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
js 数据存储和DOM编程
Feb 09 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 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
Smarty安装配置方法
2008/04/10 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
Python实现栈的方法
2015/05/26 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
python eventlet绿化和patch原理
2020/11/21 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
银行员工辞职信范文
2014/01/20 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
优良学风班申请材料
2014/02/13 职场文书
简单租房协议书
2014/04/09 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
机关保密承诺书
2014/06/03 职场文书
金融管理专业求职信
2014/07/10 职场文书
家庭教育的心得体会
2014/09/01 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python