FlexiGrid 使用 全选、自动绑定
1、介绍
Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid。它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等。Flexigrid显示的数据能够通过Ajax获取或者从一个普通的表格转换。
2、相关参数
height: 200, //flexigrid插件的高度,单位为px
width: 'auto', //宽度值,auto表示根据每列的宽度自动计算,在IE6下建议设置具体值否则会有问题
striped: true, //是否显示斑纹效果,默认是奇偶交互的形式
novstripe: false,//没用过这个属性
minwidth: 30, //列的最小宽度
minheight: 80, //列的最小高度
resizable: false, //resizable table是否可伸缩
url: false, //ajax url,ajax方式对应的url地址
method: 'POST', // data sending method,数据发送方式
dataType: 'json', // type of data loaded,数据加载的类型,xml,json
errormsg: '发生错误', //错误提升信息
usepager: false, //是否分页
nowrap: true, //是否不换行
page: 1, //current page,默认当前页
total: 1, //total pages,总页面数
useRp: true, //use the results per page select box,是否可以动态设置每页显示的结果数
rp: 25, // results per page,每页默认的结果数
rpOptions: [10, 15, 20, 25, 40, 100], //可选择设定的每页结果数
title: false, //是否包含标题
pagestat: '显示记录从{from}到{to},总数 {total} 条', //显示当前页和总页面的样式
procmsg: '正在处理数据,请稍候 ...', //正在处理的提示信息
query: '', //搜索查询的条件
qtype: '', //搜索查询的类别
qop: "Eq", //搜索的操作符
nomsg: '没有符合条件的记录存在', //无结果的提示信息
minColToggle: 1, //允许显示的最小列数
showToggleBtn: true, //是否允许显示隐藏列,该属性有bug设置成false点击头脚本报错。
hideOnSubmit: true, //是否在回调时显示遮盖
showTableToggleBtn: false, //是否显示【显示隐藏Grid】的按钮
autoload: true, //自动加载,即第一次发起ajax请求
blockOpacity: 0.5, //透明度设置
onToggleCol: false, //当在行之间转换时,可在此方法中重写默认实现,基本无用
onChangeSort: false, //当改变排序时,可在此方法中重写默认实现,自行实现客户端排序
onSuccess: false, //成功后执行
onSubmit: false, // 调用自定义的计算函数,基本没用
3、插件源码
http://files.cnblogs.com/files/youngerliu/Flexigrid.rar,这个版本做了点小改动,增加了checkbox的支持,全选,反选轻松搞定。
主要增加了flexigrid.js的930-936行
//add by
if (cm.thtype) {
if (cm.thtype == "checkbox") {
checkboxIndex = i;
$(th).html("<input type=\"checkbox\" class='checkAll' name='checkAll' />").find(":checkbox").live("click", function () {
$("#" + t.id + " tr td:nth-child(" + (checkboxIndex + 1) + ") :checkbox ").attr("checked", $(this).is(":checked"));
});
}
}
使用方式如下:
{
display: '全选',
name: 'opnion_id',
width: 50,
align: 'center',
thtype: "checkbox",
process: function (celDiv, id) {
$(celDiv).html("<input type=\"checkbox\" value=\"" + id + "\"/>").click(function () {
var index = $(this).closest("td").index() + 1;
var checked = ($("#flexme4 tr td:nth-child(" + index + ") :checkbox:checked ").size() === $("#flexme4 tr td:nth-child(" + index + ") :checkbox ").size());
$(".checkAll").attr("checked", checked);
});
}
}
//获取所选记录
function getAllChecked() {
var index = $(".checkAll:eq(1)").closest("th").index() + 1;
var arr = [];
$("#flexme4 tr td:nth-child(" + index + ") :checkbox:checked ").each(function (a, n) {
arr.push($(n).val());
})
return arr;
}
4、自动绑定列
这里根据插件绑定的数据模型,创建了实体:
public class FlexiGridModel<T>
{
private int _page = ; public int page
{
get { return _page; }
set { _page = value; }
} public int total { get; set; }
public List<Rows<T>> rows { get; set; }
}
public class Rows<T>
{
public string id { get; set; }
public T cell { get; set; }
}
数据绑定
FlexiGridModel<AdminOpnionList> pageData = new FlexiGridModel<AdminOpnionList>();
pageData.total = data.total;
pageData.page = page;
pageData.rows = new List<Rows<AdminOpnionList>>();
if (data.opnion_list != null)
foreach (AdminOpnionList item in data.opnion_list)
{
Rows<AdminOpnionList> rows = new Rows<AdminOpnionList>();
rows.id = item.opnion_id.HasValue ? item.opnion_id.Value.ToString() : "";
rows.cell = item;
pageData.rows.Add(rows);
} ReturnJsonMsg<AdminOpnionList>(pageData); public void ReturnJsonMsg<T>(FlexiGridModel<T> data)
{
Response.Clear();
if (data == null)
Response.Write("{\"page\": 1,\"total\": 0,\"rows\": []}"); else
Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(data));
Response.Flush();
Response.End();
Response.Close();
return;
}
FlexiGrid 使用 全选、自动绑定的更多相关文章
- angularjs实现 checkbox全选、反选的思考
之前做了一周的打酱油测试,其实感觉其实测试也是上辈子折翼的天使. 好长时间没写代码,感觉好多都不会了. 感谢这周没有单休,我能看熬夜看奥运了.我能有时间出去看个电影,我能有时间出去逛个商城,我能有时间 ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 定制iview选择器——全选按钮
源码下载:https://github.com/littleOneYuan/c_select 本文索引 效果 template data prop methods watch created 效果 下 ...
- 用Vue实现一个全选指令
最近用vue做了两个项目,都需要实现全选反选的功能,两个项目用了两种实现方法,第一个项目用vue的computed,第二个项目用指令来实现,用起来,发觉指令更加方便. 第一次做全选的时候是刚开始接触v ...
- JavaScript 实现全选 / 反选功能
JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...
- 2016/3/30 租房子 ①建立租房子的增、删、改php页面 ②多条件查询 ③全选时 各部分全选中 任意checkbox不选中 全选checkbox不选中
字符串的另一种写法:<<<AAAA; 后两个AA回车要求顶格 不然报错 例子: <!DOCTYPE html> <html lang="en" ...
- Vue的全选功能实现思路
全选功能的实现主要分两步: 1. 点击全选框选中所有选择框. 2. 当所有选择框都被选中时,勾选全选框. 详细思路: 1. 点击全选框选中所有选择框: 给全选框绑定一个值,然后添加change时间,当 ...
- vue+vant实现购物车的全选和反选业务,带你研究购物车的那些细节!
前言 喜欢购物的小伙伴看过来,你们期待已久的购物车来啦!相信小伙伴逛淘宝时最擅长的就是加入购物车了,那购物车是如何实现商品全选反选的呢?今天就带你们研究购物车的源码,以vue+vant为例. 正文 首 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
随机推荐
- eclipse各版本介绍
记录下吧!以免以后下载时候又不知道下载那个: Eclipse IDE for Java Developers 是为java开发的 Eclipse IDE for Java EE Developers ...
- ViewPager适配器FragmentStatePagerAdapter 与FragmentPagerAdapter
使用FragmentPagerAdapter存在删除dataSet顺序错乱的问题 改用FragmentStatePagerAdapter
- oracle undo回滚段详解
1.Undo是干嘛用的? 在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个 ...
- [OPENCV] 第一个程序 识别颜色
它可以鉴别出图像中含有给定颜色的所有像素,该算法输入的是图像以及颜色,并返回表示含有指定颜色的像素的二值图像.该算法还需要指定另外一个参数,即对颜色偏差的容忍度. 实现效果 实现后 #include ...
- Drools 规则学习
Drools 规则学习 在 Drools 当中,一个标准的规则文件就是一个以“.drl”结尾的文本文件,由于它是一个标准的文本文件,所以可以通过一些记事本工具对其进行打开.查看和编辑.规则是放在规则文 ...
- 【MySQL】 查询某个数据库有多少张数据表
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'performanc ...
- BFS_最短路径
已知若干个城市的地图,求从一个城市到另一个城市的路径,要求路径中经过的城市最少. #include<iostream> #include<cstring> using name ...
- GAMBIT、ICEM、HYPERMESH耦合面的处理方法
前两天在论坛里碰到有朋友问关于使用fluent仿真流固耦合,使用hypermesh作为前处理时的耦合面的方法,刚好今天有点时间,借此机会总结一下GAMBIT.ICEM和HYPERMESH这三款软件作为 ...
- 在Myeclipse中提交代码到GitHub中
这需要借助插件Egit,首先就是先下载该插件了,可以再eclipse中下载,也可以在外面下载,下载就不说了.下载地址git://github.com/houyongchao/plugin-Egit.g ...
- install hdp 2.2 on ubuntu 14.04
http://www.swiss-scalability.com/2014/12/install-hdp-22-on-ubuntu-1404-trusty.html 在新加节点上运行 sed -e & ...