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 相关文章推荐
javascript控制swfObject应用介绍
Nov 29 Javascript
extjs每个组件要设置唯一的ID否则会出错
Jun 15 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
js实现日历与定时器
Feb 22 Javascript
vue.js国际化 vue-i18n插件的使用详解
Jul 07 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
基于dataset的使用和图片延时加载的实现方法
Dec 11 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
Vue解决移动端弹窗滚动穿透问题
Dec 15 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
整理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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
python三大神器之fabric使用教程
2019/06/10 Python
django Admin文档生成器使用详解
2019/07/22 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
C语言笔试集
2012/07/24 面试题
婚礼庆典答谢词
2015/01/20 职场文书
公司地址变更通知
2015/04/25 职场文书
单位计划生育责任书
2015/05/09 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
企业法人代表证明书
2015/06/18 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers