jqgrid 加按钮列
1、在jqgrid表格中增加列,内容是图标,定义图标单击事件,可以操作这一行的数据,如下图

2、前台代码
<div id="grid_List">
<table id="gridTable" class="datatable"></table>
<div id="gridPager"></div>
</div>
3、js代码
<script type="text/javascript">
$(document).ready(function () {
GetGrid();
//绑定键盘按下事件
$(document).keypress(function (e) {
//回车键事件
if (e.which == ) {
$("#keywords").focus();
$("#keywords").select();
$("#btnSearch").click();
}
}); }); //加载表格
function GetGrid() {
var SelectRowIndx;
$("#gridTable").jqGrid({
url: "@Url.Content("~/Vehicle/Vehicle/GridPageListJson")",
datatype: "json",
mtype: 'POST',
height: $(window).height() - ,
autowidth: true,
colModel: [
{ label: '编码', name: 'clid', index: 'clid', width: , align: 'left', hidden: false ,key:true },
{ label: '车身编码', name: 'vehicle_code', index: 'vehicle_code', width: , align: 'left', hidden: false },
{ label: '车牌号码', name: 'cph', index: 'cph', width: , align: 'left' }, {
label: '启用', name: 'flag', index: 'flag', width: , align: 'center',
formatter: function (cellvalue, options, rowObject) {
if (cellvalue == '') return "<img onclick='imgClick(\"" + options.rowId +"\",0)' src='../../Content/Images/Icon16/accept.png'/>";
if (cellvalue == '') return "<img onclick='imgClick(\"" + options.rowId + "\",0)' src='../../Content/Images/Icon16/cross_shield.png'/>";
},
},
{
label: '详情', name: '', index: 'operate', width: , align: 'center',
formatter: function (cellvalue, options, rowObject) {
var detail="<img onclick='btn_detail(\""+ rowObject.clid + "\")'' title='详细信息' src='../../Content/Images/Icon16/application_view_detail.png' style='padding:0px 10px'>";
return detail;
},
},
],
viewrecords: true,
rowNum: ,
rowList: [, , , , ],
pager: "#gridPager",
sortname: 'CLID',
sortorder: 'desc',
rownumbers: true,
shrinkToFit: true,
gridview: true,
//multiselect: true,
onSelectRow: function () {
SelectRowIndx = GetJqGridRowIndx("#" + this.clid);
},
gridComplete: function () {
//LoadViewList();
//$("#" + this.id).jqGrid('setSelection', SelectRowIndx);
}
});
//自应高度
$(window).resize(function () {
$("#gridTable").setGridHeight($(window).height() - );
});
} function imgClick(rowid,type)
{
if(rowid=="")
return;
AjaxJson("//Vehicle/Vehicle/ChangeState", { id:rowid,type:type}, function (Data) {
if (Data.Success == true) { $("#gridTable").setCell(rowid, 'flag', Data.entity.FLAG); tipDialog(Data.Message, , 'success');
}
else
{
tipDialog(Data.Message, , 'warning');
} }); } //明细
function btn_detail(id) {
var KeyValue = GetJqGridRowValue("#gridTable", "clid");
if (id!=null) {
KeyValue=id;
}
if (IsChecked(KeyValue)) {
var url = "/Vehicle/Vehicle/Detail?KeyValue=" + KeyValue;
Dialog(url, "Detail", "车辆详情", , , function (iframe) {
top.frames[iframe].AcceptClick();
});
}
} </script>
4、后台代码
//用户审核及启用
public ActionResult ChangeState(string id, int type)
{
if (string.IsNullOrEmpty(id))
{
return Content(new JsonMessage { Success = false, Code = "-1", Message = "车辆id为空." }.ToString());
}
try
{
SYS_AMBUL_INFO entity = base_ambll.Repository().FindEntity(id);
//启用、未启用
if (type == )
{
entity.FLAG = entity.FLAG == ? : ; } else
return null;
int IsOk = base_ambll.Repository().Update(entity);
return Content(new JsonMessage { Success = true, entity = entity, Message = "操作成功" }.ToString());
}
catch (Exception ex)
{
return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());
}
}
5、注意点:
5.1 由于数据库主键字段不是id,而是clid。所以前台colModel要设置列clid的key:true
{ label: '编码', name: 'clid', index: 'clid', width: 80, align: 'left', hidden: false },
如果不设置,这样在前端获取rowid的时候就一直获取到的是序号,效果如下:

{ label: '编码', name: 'clid', index: 'clid', width: 80, align: 'left', hidden: false ,key:true },

5.2 由于clid是前面带0的数字,在传值时要转换为字符串,不然传值会不准确
在options.rowId左右加双引号
return "<img onclick='imgClick(\"" + options.rowId +"\",0)' src='../../Content/Images/Icon16/accept.png'/>";
jqgrid 加按钮列的更多相关文章
- schtasks在win7下提示错误:无法加载列资源
转自: http://blog.chinaunix.net/uid-24946452-id-2887851.html 查看cmd 编码 chcp 如使用 936中文GBK编码的话 schtasks.e ...
- SELECTION-SCREEN 加按钮
这是我喜欢的这种模式,选择屏加个新建按钮,直接跳转到主屏幕做单据. 选择屏就直接查询,双击查询结果跳转到主屏幕.... 做好编辑控制,事件处理...EVERYTHING IS SOOOOOOO NIC ...
- C#点击按钮用DataGridView动态增加行、删除行,增加按钮列
原来有一行: 点击添加,在下面增加同样的一行 新增加的行有一列删除按钮,点击某行的删除按钮时,删除当前行 方法: 哈哈,我果然好聪明啊 1.文本框.文本框.添加按钮 2.一个DataGridView( ...
- GridControl控件添加按钮列及在按钮Click事件中得到行数据 zt
在GridControl中添加按钮列的步骤如下: 1. 把列的ColumnEdit属性设置为RepositoryItemButtonEdit 2. 把TextEditStyle属性设置为HideTex ...
- devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现
1.项目中经常会在表格中插入按钮列,图片列,表格列一些非文本的特殊列.如何在devexpress表格控件gridcontrol中实现呢?以下列举一个实现添加图片列,按钮列,时间列,按钮列,开关列的示例 ...
- JqGrid分页按钮图标不显示的bug
开发中遇到的一个小问题,记录一下,如果有朋友也遇到了相同的问题,可以少走些弯路少花点时间. 如图: 分页插件使用了JqGrid,但是分页栏里出现了问题,上一页.下一页这些按钮的图标都显示为空,记得以前 ...
- jqGrid 加载完jqGrid之后可以执行函数的方法
, gridComplete: function() { jQuery('#first_gridpager').html("首页 "); jQuery('#prev_gridpag ...
- jqgrid 设置冻结列
有时,jqgrid表格的列非常多,而表格的宽度值是固定的,我们需要在表格底部出现滚动条,并且固定前面几个列作为数据参照项,如何实现? 需要用的jqgrid冻结列,步骤如下: 1)设置需要冻结的列属性, ...
- jquery easyui datagrid 动态 加载列
实现方式: 首先根据输入的sql语句获得相关的列名称返回给前台,然后在datagrid中动态加载列,接着根据查询条件(包括sql语句)获取相关的记录返回给前台用于填充datagrid.从而实现类似or ...
随机推荐
- [Luogu1462]通往奥格瑞玛的道路
题目大意: 一个n个点,m条边的图,每个边有一个边权,每个点也有一个点权. 现在要找一条从1到n的路径,保证边权和不超过b的情况下,最大点权尽量小. 问最大点权最小能是多少? 思路: 二分答案,然后D ...
- Create process in UNIX like system
In UNIX, as we’ve seen, each process is identified by its process identifier, which is a unique inte ...
- iOS开发--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用 和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一 ...
- metal的gpu query
https://developer.apple.com/documentation/metal/mtlcommandbuffer/1639924-gpustarttime gpuStartTime 看 ...
- 关于C#中async/await中的异常处理(上)
关于C#中async/await中的异常处理(上) 2012-04-11 09:15 by 老赵, 17919 visits 在同步编程中,一旦出现错误就会抛出异常,我们可以使用try…catch来捕 ...
- 可以ping通虚拟机但不能telnet 9000端口
突然发现eclipse不能连上虚拟机了,报错是本机连接不上9000的端口. 觉得有点奇怪,就在命令行里试图ping通虚拟机,成功:但尝试这telnet 9000端口的时候,却报错连接不上. 上网查了这 ...
- CentOS7 Failed to start LSB: Bring up/down networking. 已解决!!!
服务器更换了主板之前配置的静态IP发现启动网卡出现异常. 执行 service network restart 出现以下错误 Restarting network (via systemctl): ...
- SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)
Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...
- Jconsole
Jconsole 1.1 简介以及连接 JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具.下面以对tomcat的监控为例,带领大家熟悉Jcon ...
- MYSQL 问题
MYSQL 问题 (1)mysql server has gone away 导数据时,如果脚本太大,会执行中断,这时需要修改最大允许包的大小: set global max_allowed_pack ...