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 ...
随机推荐
- 【概率DP】BZOJ4318-OSU!
[题目大意] 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串.在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含( ...
- lightoj 1229 - Treblecross 博弈论
思路:SG函数 枚举先手的每一个位置是否有必胜. 1)如果出现了XXX则必胜: 2)如果出现了XX或X.X则必败: 3)否则计算后手的sg值和. 代码如下: #include<iostream& ...
- 用Java Swing实现Freecell(空当接龙)
目录 引言 1 游戏规则 2 界面设计和大致逻辑 2.1 界面设计 2.2 大致逻辑 3 主要功能模块设计与实现 3.1 主要思路 3.2 主要工具类 3.3 异常类 3.4 游戏初始化模块 3.5 ...
- mybatis批量update,返回行数为-1
mybatis批量更新返回结果为-1,是由于mybatis的defaultExExecutorType引起的, 它有三个执行器:SIMPLE 就是普通的执行器:REUSE 执行器会重用预处理语句 ...
- centos svnversion安装部署
第一步: yum install subversion; 第二步: mkdir /data/svn/conf mkdir /data/svn/library 第三步: svnadmin create ...
- Spring 配置数据源
配置一个数据源 Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0.可以在Spring配置文件中利用这两者中任何一个配置数据源. DBCP数 ...
- Linux进程(作业)的查看和杀死 牛
http://www.cnblogs.com/geaozhang/p/6910151.html
- jvm分析内存泄露
首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 - 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 ...
- CDK安装
1.下载cdk https://developers.redhat.com/products/cdk/download/ 2.在mac OS上更名并加入目录 $ mkdir -p ~/bin $ cp ...
- 如何解决sqlmapapi重启后,任务全部丢失的问题
sqlmapapi的server每次启动时都会创建一个新的数据库,这样之前的扫描记录都会全部丢失 使用python sqlmapapi.py -s可以看大IPC database的位置,这个各个操作系 ...