往往我们需要给显示的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 谈谈给表格设置列头事件、行事件、内容事件的更多相关文章

  1. Qt高仿Excel表格组件-支持冻结列、冻结行、内容自适应和合并单元格

    目录 一.概述 二.效果展示 三.实现思路 1.冻结行.冻结列 2.行高自适应 3.蚂蚁线 四.测试代码 1.添加表格数据 2.设置冻结行.列 3.行高.列宽 4.单元格背景色 5.单元格文字 6.其 ...

  2. hive设置列头(永久模式)

    到hive目录下的hive-site <property> <name>hive.cli.print.header</name> <value>true ...

  3. DEV表格设置列不可编辑

    现在是可编辑的 Run Designer--Columns--Column options下的AllowEdit属性改为false即可

  4. dev gridControl 自定义绘制列头颜色

    1.添加事件CustomDrawColumnHeader private void gvw1_CustomDrawColumnHeader(object sender, DevExpress.Xtra ...

  5. HTML5定制全选列头

    随着HTML5产品分支的不断深入使用,HTML5的需求也是越来越多,表格组件的使用也不例外,什么排序,分页,自动列宽等.最近有客户提出了如果让表格的列头加上全选的功能.细细分析其实就是两部分,表格的b ...

  6. jqgrid 点击列头的超链接或按钮时,不触发列排序事件

    接上篇文章:jqgrid 将列头设置为超链接或按钮 如果在列头设置了超链接或按钮,在点击超链接或按钮时会触发列的排序事件. 原由:点击超链接/按钮会触发排序的冒泡事件 解决方法:点击超链接/按钮时,阻 ...

  7. jqgrid 将列头设置为超链接或按钮

    有时,需要将某个列头设置为超链接或按钮,点击超链接或按钮能够跳转至其他页面(或执行一个事件操作). 可以把 label 值设置成一个a标签或button 代码如下: colModel: [{ labe ...

  8. jqgrid 中设置列不排序

    背景 今天在做系统的功能时,当时有这么个需求:在添加了一行数据时,原本的排序的自动就不能再排序,也就是排序失效. 1. 使用onSortCol事件禁止排序列 当时使用了初始化时,使用onSortCol ...

  9. 前端基于JQgrid实现自定义列头展示

    先上效果图   因为公司项目的需要,并且公司只有我这一个能写js的前端,这个自定义展示jqgrid列选项的需求依然是交由我写,辣么就分享一下我的工作成果. //初始化函数 multiSelectCol ...

随机推荐

  1. 你不知道的JavasScript上篇·第五章·原型·下

    5.差异继承 继承意味着复制操作: 差异继承: 基本原则是在描述对象行为时,使用其不同于普遍描述的特制. (我的理解是只用对象自身的而不用普遍继承的像是toString(),valueOf()这种方法 ...

  2. js相关判断

    //正则表达式判断是否为空 /^\s*?$/.test(obj) //批量转换方法 function sort(s){return s.match(/\d/g).sort()+'' } //判断是否相 ...

  3. SQL SERVER 将表字段值0和1互转的几种方法

    需求: 如果表字段的值为 0 则将其修改为1 ,如果表字段的值为 1 则将其修改为 0. 方法一 end 方法二 ) 方法三 )

  4. Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded

    这几天项目运行报了个错: Uncaught RangeError: Maximum call stack size exceeded,刚开始看到 "returnNodeParameter&q ...

  5. 【Python】读取excel数据

    '''python3读取excle数据''' import xlrd workbook = xlrd.open_workbook(r'test.xls', encoding_override='gbk ...

  6. 文档撰写思路与排版(hadoop)

    这几天在写项目提交的几个报告,写完回想了一下,在写作框架确定与排版上浪费了不少时间,特此总结一下思路. 这个写完回家过年了....emmmm 1. 定好大标题框架,使用自动添加序号,先不着急修改样式 ...

  7. eclipse中svn插件的工程不能与svn资源库同步的解决方法

    eclipse中svn插件的工程不能与svn资源库同步的解决办法 最近几天自己的工程与资源库同步总是出现问题,重启机器后发现资源库丢失了,无法进行同步. 解决办法如下: 1.右键工程---->选 ...

  8. 转:在ASP.NET MVC中通过URL路由实现对多语言的支持

    对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎 ...

  9. windows使用

    将桌面.我的文档.收藏夹等转移到其他盘 方法很多,介绍如下: 一.新装的系统,桌面.我的文档.收藏夹等都是默认在C盘的,并且这些数据都是用户经常用到的一些数据.为了避免以后系统崩溃所带来的危险,最好的 ...

  10. tar压缩/解压用法

    格式:tar zcvf 压缩后的路径及包名 你要压缩的文件 z:gzip压缩 c:创建压缩包 v:显示打包压缩解压过程 f:接着压缩 t:查看压缩包内容 x:解压 X:指定文件列表形式排除不需要打包压 ...