jqgrid 谈谈给表格设置列头事件、行事件、内容事件
往往我们需要给显示的jqgrid表格赋予事件功能,比如:列头事件、行事件、内容事件。需要的效果可能如下:

如你所见,以上的超链接和按钮均是绑定的事件。那分别如何实现这些事件的绑定呢?
一、行事件
行事件:在每个行头部或尾部的事件。一般用于放置‘编辑’或“删除”按钮
在jqgrid中,行事件所在的列实际上也是一个绑定列,故可以把行事件的列看成和普通列字段一样来对待。
可以通过设置 formatter 来动态实现编辑区事件标签。
由于行事件可能需要传递当前行的其他列的值作为参数,可以通过 rowObject 来获取指定列的值。如:rowObject.Name 或 rowObject["Name"]
请参考以下代码块:
//初始化操作区所在列
var curRowF = {
//label: "操作区",//标签内容
label: '<label title="操作区" style="width:98%;text-align:center">操作区</label>',
name: "actions",//字段编码
align: "center",//横向位置
sortable: false,//是否排序
hidden: false,//是否隐藏
frozen: true,//是否冻结
// width: 80,//列宽度
width: outEventArr.length * 30,//列宽度 formatter: function (cellvalue, options, rowObject) { return cellvalue; }
}; var formatRowFun = function (cellvalue, options, rowObject) {
var lbl = ""; if (outEventArr != null && outEventArr.length > 0) {
for (var j = 0; j < outEventArr.length; j++) {
var ev = outEventArr[j];
if (ev.EventType == "1")//为行事件时
{
lbl += OutEventForLabel(ev, null, rowObject, cellvalue) + " ";
}
}
}
return lbl;
};
代码说明:OutEventForLabel 方法为我自己编写事件拼凑方法,可以根据自己项目实际需求去实现
二、列事件
列事件:附加在列名上的事件
直接在 colModel 对应列的 label 上去配置事件
colModel: [{ label: '<a href="HtmlPage1.html" title="测试标题">OrderID</a>', name: 'OrderID', key: true, width: 75 }]
三、内容事件
内容事件:给jqgrid内容区域配置事件
内容事件配置需要依附在具体的某个列上,需要在 formatter 中配置生成事件
//拼凑内容事件的formatter函数
var formatFun = function (cellvalue, options, rowObject) {
//获取内容事件标签
//options.colModel.name为当前列的name名称
var evlb = OutEventForLabel(eval("event_" + options.colModel.name), null, rowObject, cellvalue);
if (evlb != null && evlb != "") {
return evlb;
} return cellvalue;
};
由于内容事件的拼凑是动态的,需要事先定好是给那个列所在值拼凑事件,故我的写法,一个动态变量名:
OutEventForLabel(eval("event_" + options.colModel.name), null, rowObject, cellvalue);
结尾处给大家分享一个细节:
对于每个列字段的 formatter 方法,该部分函数实际上是在jqgrid的表格框架内容加载完毕后才执行的,也只有这样我们才能通过rowObject获取各行的其他列值。
故,在进行内容事件绑定时,我传递了一个代表是何列的参数变量到 OutEventForLabel 方法中,就是为了formatter 对应的列的值内容。
eval("event_" + options.colModel.name)
jqgrid 谈谈给表格设置列头事件、行事件、内容事件的更多相关文章
- Qt高仿Excel表格组件-支持冻结列、冻结行、内容自适应和合并单元格
目录 一.概述 二.效果展示 三.实现思路 1.冻结行.冻结列 2.行高自适应 3.蚂蚁线 四.测试代码 1.添加表格数据 2.设置冻结行.列 3.行高.列宽 4.单元格背景色 5.单元格文字 6.其 ...
- hive设置列头(永久模式)
到hive目录下的hive-site <property> <name>hive.cli.print.header</name> <value>true ...
- DEV表格设置列不可编辑
现在是可编辑的 Run Designer--Columns--Column options下的AllowEdit属性改为false即可
- dev gridControl 自定义绘制列头颜色
1.添加事件CustomDrawColumnHeader private void gvw1_CustomDrawColumnHeader(object sender, DevExpress.Xtra ...
- HTML5定制全选列头
随着HTML5产品分支的不断深入使用,HTML5的需求也是越来越多,表格组件的使用也不例外,什么排序,分页,自动列宽等.最近有客户提出了如果让表格的列头加上全选的功能.细细分析其实就是两部分,表格的b ...
- jqgrid 点击列头的超链接或按钮时,不触发列排序事件
接上篇文章:jqgrid 将列头设置为超链接或按钮 如果在列头设置了超链接或按钮,在点击超链接或按钮时会触发列的排序事件. 原由:点击超链接/按钮会触发排序的冒泡事件 解决方法:点击超链接/按钮时,阻 ...
- jqgrid 将列头设置为超链接或按钮
有时,需要将某个列头设置为超链接或按钮,点击超链接或按钮能够跳转至其他页面(或执行一个事件操作). 可以把 label 值设置成一个a标签或button 代码如下: colModel: [{ labe ...
- jqgrid 中设置列不排序
背景 今天在做系统的功能时,当时有这么个需求:在添加了一行数据时,原本的排序的自动就不能再排序,也就是排序失效. 1. 使用onSortCol事件禁止排序列 当时使用了初始化时,使用onSortCol ...
- 前端基于JQgrid实现自定义列头展示
先上效果图 因为公司项目的需要,并且公司只有我这一个能写js的前端,这个自定义展示jqgrid列选项的需求依然是交由我写,辣么就分享一下我的工作成果. //初始化函数 multiSelectCol ...
随机推荐
- js-ES6学习笔记-数值的扩展
1.ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 2.如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法. 3.ES6在Number对象 ...
- 全局 DOM 变量
全局 DOM 变量 你可能已经知道,声明一个全局变量(使用 var 或者不使用)的结果并不仅仅是创建一个全局变量,而且还会在 global 对象(在浏览器中为 window )中创建一个同名属性. 还 ...
- 在线报表设计实战系列 – 制作多Y轴组合图表(8)
葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码.灵活.稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计. ...
- 带你从零学ReactNative开发跨平台App开发(二)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 使用 Azure PowerShell 模块创建和管理 Windows VM
Azure 虚拟机提供完全可配置的灵活计算环境. 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小.选择 VM 映像和部署 VM. 你将学习如何执行以下操作: 创建并连接到 VM 选 ...
- QtDesigner与程序设计模式
在我的上一篇博文中提到我认识到UI设计的重要性.在这里将解析一下使用QtDesigner设计UI进行程序GUI的设计,QtDesigner的.ui文件可以转化为许多的程序代码,比如我知道的就有:c++ ...
- IP地址的分类——a,b,c 类是如何划分的【转】
ip分类已经是耳熟能详了.但是说的都比较繁琐,这里简述一下,便于以后复习. IP地址,一共分成了5类,范围分别如下: A类IP:从0.0.0.0 – 127.255.255.255,共有1677721 ...
- 高通 display 驱动【转】
高通display驱动 0. 关键字 MDSS : 高通平台lcd multimedia Display sub system DSI: Display Serial Interface qcom,m ...
- linux常见问题解决
1.登录环境故障的原理及解决办法? -bash-4.1$ -bash-4.1$ cp /etc/skel/.bash* .
- python中判断实例可迭代地几种方式
1. 利用 __iter__内建属性 if hasattr(obj, '__iter__') : print 'iterable' 这种方法不能检测字符串,如:hasattr('', '__iter_ ...