最近看到了一款flexigrid表格组件,简单美观,在下载使用的过程中,发现缺少很多功能。《基于jQuery的GridView-Flexigrid(2)-扩展和修复》给我带来了很大的帮助,而我在它的基础上也做了细节的调整,由于我在grid中保存了当前加载的数据源,以及每条数据的选中状态,所以以下方法,实现起来倒也简洁。下面针对功能简单做下说明:

  1.增加获取选中行对应的Json数据,返回Json对象数组。

  2.增加获取选中行的索引,返回数据。

  3.增加选中指定行,不选中指定行等方法

  4.重写行绑定事件。在动态添加行时,会触发onRowDataBind事件,this指向行的dom对象,可以为行动态的绑定事件。

  5.增加总行数和数据源的节点名称配置。该项主要是由于,其本身要求后台返回的数据格式为{total:0,rows:[]},与项目现状不兼容,故可以直接指定节点名称,加载数据。

  6.增加数据源为Json对象数组的支持。该项主要是由于部分接口直接返回的数据源,无需总行数,故无需分页。

  7.增加隐藏和显示grid方法。该项纯属项目需要,一份数组对应2种显示方式,我想公用一个翻页组件,故如此做。

  8.重写reload事件,增加参数支持,可以在reload时通过改变属性配置达到修改条件得到修改后的数据源,或者加载指定页等。

  让我们看看代码是怎么写的吧。首先是页面html代码

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

  下面是Js配置部分

            var option = {
height: "auto", //flexigrid插件的高度,单位为px
width: "auto",
url: '/Plugs/flexigrid/sample/Handler1.ashx', //ajax url,ajax方式对应的url地址
colModel: [
{ text: '商品编码', name: 'ProductID', width: 50, sortable: true, align: 'left', hide: true },
{ text: '商品名称', name: 'ProductName', width: 100, sortable: true, align: 'left' },
{ text: '规格', name: 'QuantityPerUnit', width: 120, sortable: false, align: 'center' },
{
text: '单价', name: 'UnitPrice', width: 100, sortable: true, align: 'right', render: function (value, row, data, index) {
return "index:" + index + " value:" + value;
}
},
{ text: '库存', name: 'UnitsInStock', width: 100, sortable: true, align: 'left' },
{ text: '已订购', name: 'UnitsOnOrder', width: 100, sortable: true, align: 'left' }
],
buttons: [
{
name: 'btn1', text: "获取选中行", bclass: 'Add', handler: function () {
var rows = $("#productlist").flexGetCheckedRows();
alert(rows.join());
}
},
{
name: 'btn2', text: "选中2", bclass: 'Delete', handler: function () {
$("#productlist").flexCheck(1);
}
},
{
name: 'btn3', text: '不选2和3', handler: function () {
$("#productlist").flexUnCheck([1, 2]);
}
},
{
name: 'btn4', text: '获取选中行数据', handler: function () {
var data = $("#productlist").flexGetCheckedData();
alert(JSON.stringify(data));
}
}, {
name: 'btn5', text: '显示隐藏Grid', handler: function () {
var p = window.op || 1;
if (p === 1) {
$("#productlist").flexHideGird();
window.op = 2;
} else {
$("#productlist").flexHideGird(false);
window.op = 1;
}
}
}, {
name: 'btn6', text: "重新加载(10)", handler: function () {
$("#productlist").flexReload({
newp: 10
});
}
}
],
totalProperty: "totalcount",
rowProperty: "data",
sortname: "ProductID",
sortorder: "asc",
title: "丰富的列表",
usepager: true,
useRp: false,
showcheckbox: true,
onRowDataBind: contextmenu
};
var grid = $("#productlist").flexigrid(option);

效果预览
  

测试代码下载

flexigrid 学习总结的更多相关文章

  1. 【转】Spring.NET学习笔记——目录

    目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...

  2. Spring.NET学习

    Spring.NET学习笔记——目录(原)   目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) ...

  3. Spring.NET学习笔记——目录(原)

    目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...

  4. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  5. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  6. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  7. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

随机推荐

  1. python -- configparse读取配置文件

    在开发过程中,有的时候需要将一些参数写入到配置文件中,这样在改动一些相关信息时,可以直接在配置文件中进行修改. 而在python中,可以通过内置模块configparse对标准的配置文件进行读取. 配 ...

  2. PLY手册翻译

    https://www.kancloud.cn/kancloud/ply/42143 http://wiki.jikexueyuan.com/project/python-lex-yacc/ply-0 ...

  3. Gold Balanced Lineup POJ - 3274

    Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...

  4. python-4函数式编程

    1-高阶函数 变量可以指向函数.   def add(x, y, f): 例如f参数为函数 编写高阶函数,就是让函数的参数能够接收别的函数. Python内建了map()和reduce()高阶函数. ...

  5. 笔记-pytho-语法-yield

    笔记-python-语法-yield 1.      yield 1.1.    yield基本使用 def fab(max): n,a,b = 0, 0, 1 while n < max: y ...

  6. pyhton,数据类型

    标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) Tuple(元组) List(列表) Sets(集合) Dictionary(字典) 重点是: 类 ...

  7. 多个".h"文件中声明及定义 全局变量和函数

    一.".h"文件必须以如下格式书写 例:文件<CZ_efg_hi.h"> ------------文件内容----------- #ifndef CZ_Efg ...

  8. 程序员最值得听的歌曲TOP10

      No.10 一剪梅 费玉清 - 玉笛公子 <一剪梅>是1984年台湾同名电视剧的片头曲,原唱为林禹胜,经典版本由费玉清演唱,后又成为2009年霍建华.吕一主演电视剧<新一剪梅&g ...

  9. Java8 时间处理

    Table of Contents 前言 时间单位和时区 时间点 时间段 时间的解析和格式化 时区时间 兼容旧接口 结语 前言 时间处理是一个经常会用到但又不那么好用的功能,其中的主要问题在于对人友好 ...

  10. Mybatis + Oracle 批量insert的问题

    这个问题真的太坑了 之前用ibatis+sql server 的foreach 很容易就写出来批量insert数据,但是测试后报错:SQL结束格式错误 现在换到银行工作,数据库也换成Oracle了 特 ...