Jqgrid之强大的表格插件应用

jqGrid是一款基于jQuery的功能强大的表格插件,使用jqGrid可以轻松实现前端页面与后台数据进行ajax异步通信,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的选项说明整理成文,分享给大家,然后从项目实际应用出发,举例讲解增加删除、查看、查找数据等业务的应用。

(0)

相关推荐

  • jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法

    一般的,一个jqGrid的基本属性有一下几个常用的. 复制代码 代码如下: $("#id").jqGrid({ url: "", datatype: "local", postData: { strJson: Data }, mtype: "post", height: 45, width: 450, rowNum: rum, //每页的记录数 pgtext: "第{0}页 共{1}页", pgbutton

  • MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

    看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是MongoDB基本应用实现起来还是比较轻松的,甚至代码比基本的ADO.net访问关系数据源还要简洁.由于其本身的"非关系"的数据存储方式,使得对象关系映射这个环节对于MongoDB来讲显得毫无意义,因此我们也不会对MongoDB引入所谓的"ORM"框架. 下面我们将逐步

  • jqGrid表格应用之新增与删除数据附源码下载

    jqGrid可以结合fancybox等插件完成超酷的弹出层效果,通过与php后台交互,可以轻松完成数据的添加与详情查看,而这个过程完全是一个ajax异步通信过程,是一个非常友好的富客户端应用. 下面给大家展示了效果图,喜欢的朋友可以直接下载源码哦. 效果展示    源码下载 在上一篇文章中,我们提到过jqGrid自身有强大的单元格操作模块,但是这些模块操作起来不太适合用户的习惯,在本文中,我们使用fancybox,以及表单插件来完成jqGrid数据的添加以及删除操作. XHTML 首先需要在he

  • jQuery插件jqGrid动态获取列和列字段的方法

    本文实例讲述了jQuery插件jqGrid动态获取列和列字段的方法.分享给大家供大家参考,具体如下: 1.问题背景 jqGrid表格插件,利用自身方法获取表格的表头和表格字段:获取列名和列字段名显示在弹窗里,用复选框进行勾选 2.实现源码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>jqGrid动态获取列和列字段</title> <

  • jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)

    jqGrid 是一个用来显示网格数据的jQuery插件,通过使用jqGrid可以轻松实现前端页面与后台数据的ajax异步通信. 一.要引用的文件 要使用jqGrid,首先页面上要引入如下css与js文件. 1.css <link href="/css/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 2.js <script src='/Scripts/js/jquery-2.

  • Jqgrid表格随窗口大小改变而改变的简单实例

    使用jquery插件,主要实现当窗口发生改变时jqgird表格也随着改变大小 html:<div id="liste">  <table id="list" class="scroll" cellpadding='0' cellspacing='0' ></table>     <div id="pager" class="scroll" style="t

  • jqGrid jQuery 表格插件测试代码

    官方Demo地址:http://www.trirand.com/blog/jqgrid/jqgrid.html 效果图: 页面代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://w

  • 通过点击jqgrid表格弹出需要的表格数据

    首先对Jqgrid网格插件做个简要的说明.在众多的表格插件中,Jqgrid的特点是非常鲜明的. 特点如下: 完整的表格呈现与运算功能,包含换页.栏位排序.grouping.新增.修改及删除资料等功能. 自定义的工具列 预设的Navigator工具列,可以很容易的使用新增.删除.编辑.检视及搜寻等功能. 完整的分页功能 按下任一栏位的标头,皆可以该栏位为排序项目.无论是升序或降序皆可. 预设的action formatter,可以快速而直觉地对每笔资料做运算. 支持多种数据格式.比如json.xm

  • jQuery中jqGrid分页实现代码

    (1)页面代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UT

  • jqgrid 表格数据导出实例

    首先,是一段javascript脚本: 复制代码 代码如下: /**  *   *   * @param table_id 表格的id  * @param container_id 容器的id  * @param form_id 提交表单的id  * @param title 文件名  * @param rownumbers  */  function getXlsFromTbl(table_id, container_id ,form_id, title, rownumbers) {     

随机推荐