一、概览

Flexigrid是一个基于jQuery开发的Grid,与 Ext Gird类似。Flexigrid显示的数据能够通过Ajax获取或者从一个普通的表格转换。

它的功能包括:

s   调整列宽

s   合并列标题

s   自定义查找

s   隐藏列

s   隔行变色

s   行扩展事件

s   动态注册外部参数

s   分页

s   排序

s   显示/隐藏表格等。

二、环境准备

首先.去官网http://www.flexigrid.info/下载FlexiGrid .下载完成后,解压缩文件得到如下目录结构:

flexigrid-1.1

+css

+images

+bg.gif

+btn-sprite.gif

+…

+flexigrid.css

+flexigrid.pack.css

+js

+flexigrid.js

+flexigrid.pack.js
其中css文件夹为FlexiGrid的css样式表文件及所需的图片,js文件夹为FlexiGrid的js文件

三、实例

1.在MyEclipse下新建Web project,命名为flexiGridDemo

2.把FlexiGrid包下所有的文件拷贝到WebRoot下

3.修改index.jsp页面

1)将FlexiGrid的样式表文件和js文件引入到页面

<link href="css/flexigrid.css" type="text/css" rel="stylesheet" />

<script src="js/jquery-1.5.2.min.js" type="text/javascript"></script>           <script src="js/jquery.flexigrid.js" type="text/javascript"></script>

2)在<body>中增加FlexiGrid的容器

<div id="ptable" style="margin: 10px">

<table id="flexTable" style="display: none"></table>

</div>

3)编写生成FlexiGrid的js代码:

<script type="text/javascript">

$(document).ready(function(){

var grid=$("#flexTable").flexigrid({

width: 760,

height: 280,

url: 'flexGridServlet.do',

dataType: 'json',

colModel : [

{display: '编号',

name : 'id',

width : 50,

sortable : true,

align: 'center',

hide: false,

toggle : false

},

{display: '工作名称',

name : 'job_name',

width : 250,

sortable : false,

align: 'center'

},

{display: '工作地址',

name : 'work_address',

width : 100,

sortable : true,

align: 'center'

},

{display: '工资',

name : 'salary',

width : 60,

sortable : true,

align: 'right',

process:formatMoney

},

{display: '日期',

name : 'date',

width : 120,

sortable : true,

align: 'center'

},

{display: '语言',

name : 'language',

width : 80,

sortable : true,

align: 'center'

}                                                                          ],

buttons : [

{name: 'add',

displayname: '新增',

bclass: 'add',

onpress: toolbarItem

},

{separator: true},

{ name: 'modify',

displayname: '修改',

bclass: 'modify',

onpress: toolbarItem

},

{separator: true},

{ name: 'delete',

displayname: '删除',

bclass: 'delete',

onpress: toolbarItem

}

],

searchitems : [

{display: '编号', name : 'id', isdefault: true},

{display: '工作名称', name : 'job_name'},

{display: '工作地址', name : 'work_address'},

{display: '语言', name : 'language'}

],

errormsg: '发生异常',

sortname: "id",

sortorder: "desc",

usepager: true,

title: '信息发布管理Flexigrid',

pagestat: '显示记录从{from}到{to},总数{total}条',

useRp: true,

rp: 10,

rpOptions: [10, 15, 20, 30, 40, 100],

nomsg: '没有符合条件的记录存在',

minColToggle: 1,

showTableToggleBtn: true,

autoload: true,

resizable: false,

procmsg: '加载中, 请稍等 ...',

hideOnSubmit: true,

blockOpacity: 0.5,

showcheckbox: true,

gridClass: "bbit-grid",

rowhandler: false,

rowbinddata: true,

onrowchecked: callme

});

function callme(){

alert("选中了");

}

function toolbarItem(com, grid) {

if (com=='delete'){

deleteMe();

}else if (com=='add'){

openDialogAdd();

}else if (com=='modify'){

openDialogModify();

}

}

//操作函数

function formatMoney(value, pid) {

return "¥" + parseFloat(value).toFixed(2);

}

function openDialogAdd(){

}

function openDialogModify(){

}

function deleteMe(){

}

});

</script>

4)编写后台代码

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

response.setHeader("Pragma", "no-cache");

response.setHeader("Cache-Control", "no-cache, must-revalidate");

response.setHeader("Pragma", "no-cache");

String sql = "";

// 当前第几页

String pageIndex = request.getParameter("page");

// 每页多少条

String pageSize = request.getParameter("rp");

// 条件字段值ֵ

String query = new String(request.getParameter("query").getBytes("ISO8859-1"), "UTF-8");

// 条件字段

String qtype = request.getParameter("qtype");

// 排序字段

String sortname = request.getParameter("sortname");

// desc or asc

String sortorder = request.getParameter("sortorder");

// 操作符

String qop = request.getParameter("qop");

int count = 0;

List list = null;

try {

sql = "select count(*) from job_info1" ;

if (!query.equals("")) {

sql += " where " + qtype + " like " + "'%" + query + "%'";

}

count = db.executeQuery(sql);

sql = "select * from job_info1";

if (!query.equals("")) {

sql += " where " + qtype + " like " + "'%" + query + "%'";

}

sql += " order by " + sortname + " " + sortorder;

sql += " limit " + ((Integer.parseInt(pageIndex) - 1) * Integer.parseInt(pageSize)) + "," + pageSize;

list = db.executeQueryList(sql);

if (list == null) {

System.out.println("======出错啦======");

return;

}

} catch (Exception e) {

e.printStackTrace();

}

Map map = new HashMap();

map.put("page", pageIndex);

map.put("total", count + "");

// to JSON

String json = toJSON(list, map);

response.getWriter().write(json);

response.getWriter().flush();

response.getWriter().close();

5)配置web.xml

<servlet>

<servlet-name>flexGridServlet</servlet-name>

<servlet-class>servlet.FlexiGridServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>flexGridServlet</servlet-name>

<url-pattern>/flexGridServlet.do</url-pattern>

</servlet-mapping>

6)sql脚本

CREATE TABLE `job_info1` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`job_name` varchar(255) DEFAULT NULL,

`date` varchar(255) DEFAULT NULL,

`work_address` varchar(255) DEFAULT NULL,

`salary` varchar(255) DEFAULT NULL,

`language` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=163 DEFAULT CHARSET=gbk;

INSERT INTO job_info1 VALUES ('3', '我的名声', '2009-12-04', '2009', '30.01', '英文');

INSERT INTO `job_info1` VALUES ('14', '14', '2009-12-05', '14io', '14.51', '英文');

INSERT INTO `job_info1` VALUES ('15', '15', '15', '15', '15.2', '中文');

INSERT INTO `job_info1` VALUES ('111', '111', '2009-12-04', '111', '12.2', '中文');

INSERT INTO `job_info1` VALUES ('116', 'qqq', '2009-12-01', 'www', '11.00', '英文');

INSERT INTO `job_info1` VALUES ('120', '12', '2009-12-15', '12', '3234.00', '中文');

INSERT INTO `job_info1` VALUES ('121', '我的k', '2009-12-04', '说到底', '10000', '英文');

INSERT INTO `job_info1` VALUES ('122', '我的kk', '2009-12-04', '啊可怜的', '10', '英文');

INSERT INTO `job_info1` VALUES ('123', '去1', '2009-12-07', 'iwio', '10', '英文');

INSERT INTO `job_info1` VALUES ('124', '1噢o', '2009-12-08', '2030', '1900', '中文');

INSERT INTO `job_info1` VALUES ('129', '其实', '2009-12-08', '阿斯科', '221', '英文');

INSERT INTO `job_info1` VALUES ('131', '其实', '2009-12-08', '阿斯科', '221', '英文');

INSERT INTO `job_info1` VALUES ('134', '世界', '2009-12-08', '东方方法', '14.00', '中文');

INSERT INTO `job_info1` VALUES ('135', '就啊是', '2009-12-08', '可看到', '22.00', '英文');

INSERT INTO `job_info1` VALUES ('136', '就啊是', '2009-12-08', '阿斯', '22.00', '中文');

INSERT INTO `job_info1` VALUES ('137', '世康', '2009-12-08', '萨芬成都市', '123', '英文');

INSERT INTO `job_info1` VALUES ('138', '显示卡', '2009-12-08', '收到反看', '123', '中文');

INSERT INTO `job_info1` VALUES ('139', '1东方法', '2009-12-08', '244ss', 'www', '中文');

INSERT INTO `job_info1` VALUES ('140', '发卡量', '2009-12-08', 'w', '45', '中文');

INSERT INTO `job_info1` VALUES ('141', '晚上', '2009-12-10', '时间', '100', '英文');

INSERT INTO `job_info1` VALUES ('142', '阿克接口', '2009-12-10', '问问', '10', '英文');

INSERT INTO `job_info1` VALUES ('143', 'wwwree', '2009-12-10', '23', '300.00', '英文');

INSERT INTO `job_info1` VALUES ('144', '111', '2009-12-10', '122', '12.00', '中文');

INSERT INTO `job_info1` VALUES ('145', '23456', '2009-12-10', '山东省', '1211', '英文');

INSERT INTO `job_info1` VALUES ('146', '请求权', '2009-12-25', '2111', '11112', '英文');

INSERT INTO `job_info1` VALUES ('148', '12112', '2009-12-10', '3', '22', '中文');

INSERT INTO `job_info1` VALUES ('149', '222', '2009-12-10', '121', '2121', '中文');

INSERT INTO `job_info1` VALUES ('150', '失算', '2009-12-10', '却完全', '1', '中文');

7)启动tomcat测试页面

四、API详解

1.FlexiGrid属性:

height:

默认值200, flexigrid的高度,单位为px

width:

默认值'auto', flexigrid的宽度,auto表示根据每列的宽度自动计算

striped:

默认值true, 是否显示斑纹效果,默认是奇偶交互的形式

novstripe:

默认值false,是否显示垂直分隔条,默认显示

minwidth:

默认值30, flexigrid列的最小宽度

minheight:

默认值80, flexigrid列的最小高度

resizable:

默认值false, 是否可调整大小

url:

默认值false, ajax方式获取数据对应的url地址

method:

默认值'POST', 数据发送方式

dataType:

默认值'json', 数据加载的类型,xml,json

errormsg:

默认值'发生错误', 错误提升信息

usepager:

默认值false, 是否显示分页条

nowrap:

默认值true, 是否不换行

page:

默认值1, 默认当前页

total:

默认值1,总页数

useRp:

默认值true, 是否可以动态设置每页显示的结果数

rp:

默认值25,默认每页显示的结果数

rpOptions:

默认值[10, 15, 20, 25, 40, 100], 可选择设定的每页结果数

title:

默认值false,标题

pagestat:

默认值'显示记录从{from}到{to},总数 {total} 条', 显示当前页和总页面的样式

procmsg:

默认值 '正在处理数据,请稍候 ...', 正在处理的提示信息

query:

默认值'', 搜索查询的条件

qtype:

默认值'', 搜索查询的类别

qop:

默认值"Eq", 搜索的操作符

nomsg:

默认值'没有符合条件的记录存在', 无结果的提示信息

minColToggle:

默认值1, 最少保留的列数

showToggleBtn:

默认值true, 是否显示隐藏列按钮

hideOnSubmit:

默认值true, 提交时是否显示遮盖

showTableToggleBtn:

默认值false, 是否显示伸缩按钮

autoload:

默认值true, 是否自动加载

blockOpacity:

默认值0.5, 透明度设置

onToggleCol:

默认值false,隐藏列时触发的函数

onChangeSort:

默认值false, 当改变排序时触发的函数

onSuccess:

默认值false, 成功后执行的函数

onSubmit:

默认值false, 调用自定义的函数

showcheckbox:

默认值false, 是否显示第一列的checkbox(用于全选)

rowhandler:

默认值false,启用行的扩展事件功能,在生成行时绑定事件,如双击,右键等

rowbinddata:

默认值false,配合上一个操作,如在双击事件中获取该行的数据

extParam:

默认值{},添加extParam参数可将外部参数动态注册到grid,实现如查询等操作

gridClass:

默认值"bbit-grid",flexigrid的样式

onrowchecked:

默认值false,在每一行的的checkbox选中状态发生变化时触发某个事件

2.FlexiGrid的方法:

flexigrid(p):

根据属性p创建flexigrid

flexReload(p)

根据属性p重新加载flexigrid

flexResize(w,h)

重新指定flexigrid宽度和高度

ChangePage(type)

改变当前页

flexOptions(p)

更新Option

GetOptions

获取Option

getCheckedRows

获取选中的行

flexToggleCol(cid, visible)

重新加载flexigrid

flexAddData(data)

为flexigrid增加数据

noSelect(p)

禁止选中

FlexiGrid使用手册的更多相关文章

  1. FREERTOS 手册阅读笔记

    郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...

  2. JS魔法堂:不完全国际化&本地化手册 之 理論篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  3. 转职成为TypeScript程序员的参考手册

    写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...

  4. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  5. JS魔法堂:不完全国际化&本地化手册 之 实战篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  6. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  7. linux命令在线手册

    下面几个网址有一些 Linux命令的在线手册,而且还是中文的,还可以搜索.非常方便 Linux命令手册 Linux命令大全 Linux中文man在线手册 每日一linux命令

  8. Mysql完全手册(笔记二,使用数据与性能优化)

    一.使用数据 1.使用变量 MySQL也可以让我们以用户自定义的变量来存储select查询的结果,以便在将来select查询中使用.它们只会在客户会话期间存在,但是它们提供一个方便有效的方法来连接查询 ...

  9. html javascript css3 php3.2.3离线手册

    各位新年快乐! 愿大家"愿有前程可奔赴,也有岁月可回头"! 发现个离线手册很全的网站,分享大家,也mark自用. http://www.shouce.ren/ 手册网

随机推荐

  1. 【翻译】Ext JS最新技巧——2014-10-30

    原文:Top Support Tips Greg Barry:Ext JS 5的ExtraParams Ext JS 4同意用户直接将extraParams加入到一个链接,相似例如以下代码: Ext. ...

  2. HDU3988-Harry Potter and the Hide Story(数论-质因数分解)

    Harry Potter and the Hide Story Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 ...

  3. Eclipse build launcher 3具体步骤

    1. 下载launcher 3源代码  (需要FQ) git clone https://android.googlesource.com/platform/packages/apps/Launche ...

  4. Android 获取屏幕大小和密度

    Android 获取屏幕大小和密度 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay ...

  5. Android 实现蘑菇街购物车动画效果

    版本号:1.0  日期:2014.8.6 版权:© 2014 kince 转载注明出处   使用过蘑菇街的用户基本上都知道有一个增加购物车的动画效果,此处不详细描写叙述想知道的能够去下载体验一下. 1 ...

  6. 于ubuntu配置hadoop当问题

    1. 构造ssh登录 我们并不需要改变/etc/ssh/sshd_config 2. 新hadoop用户,home下列不hadoop夹 创建使用下面的命令 useradd -m hadoop 3. n ...

  7. BZOJ 1212 HNOI2004 L语言 AC自己主动机(Trie树)+动态规划

    标题效果:给定词的列表,并m串 每个字符串q个最长前缀,这个前缀可满足拆分成一些字符串 这些字符串中存在的词汇太 再也不怕错误的数据范围--有一个很明显Trie树能解决的问题竟然被我写的AC自己主动机 ...

  8. 王立平--result += &quot;{&quot;;

    result += "{"; 等于:result=result+"{" 字符串连接 x+=1====x=x+1 版权声明:本文博客原创文章,博客,未经同意,不得 ...

  9. javaScript在私有的属性和方法

    javaScript并没有什么特别的语法来代表私人.保.或公共的属性和方法,在这一点上与 java或其他语言是不同的.JavaScript大家是共同的所有对象: var myobj={ mypop:1 ...

  10. ubuntu14.04(64位置) ADB Not Responding

    今天装了一个很搞笑的比率Ubuntu14.04  还安装Android studio    写app   执行错误: Adb not responding. you can wait more or ...