flexigrid 学习总结
最近看到了一款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 学习总结的更多相关文章
- 【转】Spring.NET学习笔记——目录
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- Spring.NET学习
Spring.NET学习笔记——目录(原) 目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) ...
- Spring.NET学习笔记——目录(原)
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
随机推荐
- python系列2之数据类型
目录 Python数据类型 python的运算符 Python的循环与判断语句 python练习 Python作业 一. Python的数据类型 1. 整型(int) <1>. 赋值 ...
- iOS-UICollectionViewController 介绍
废话不多说,列几个列子 (几种情况下的做法): 情景一: 介绍:1. 在UIViewController 上加 UICollectionView (用代码 创建 UICollectionView). ...
- 7,vim
vim与程序员 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体 ...
- mysql安装与基本管理,mysql密码破解
一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...
- dex2oat 加载多次
我是一个做插件开发的人员,插件就是动态加载dex文件. 然后4.4以后,Android dalvik虚拟机,和ART. art运行的必须要把dex转换为oat elf文件. 然后,这个dex2oat需 ...
- 剑指Offer - 九度1524 - 复杂链表的复制
剑指Offer - 九度1524 - 复杂链表的复制2014-02-07 01:30 题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点 ...
- Lua语言中文手册 转载自网络
Programming in LuaCopyright ® 2005, Translation Team, www.luachina.net Programming in LuaProgramming ...
- 【APUE】Chapter8 Process Control
这章的内容比较多.按照小节序号来组织笔记的结构:再结合函数的示例带代码标注出来需要注意的地方. 下面的内容只是个人看书时思考内容的总结,并不能代替看书(毕竟APUE是一本大多数人公认的UNIX圣经). ...
- leetcode 【 Merge Two Sorted Lists 】 python 实现
题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...
- Nuget的使用笔记-(使用nuget发布dll到www.nuget.org)
Nuget是神马东东? 来自nuget.org官方的介绍 ----------------------------------------------------------------------- ...