jqgrid项目使用笔记
function loadActData(){
$("#actGridTable").clearGridData();//首先清空表格内容
var url = webContext + '/act/getActivitiesData';//配置路径
$('#actGridTable').jqGrid({ //调用 jqgrid方法
url: url,
mtype: 'post', //设置请求后台的方式
datatype: 'json', //设置传输的数据类型
colNames: ['活动ID','处理类型','活动名称','目标','创建日期','完成率','申请人ID', '申请人', '主办人ID','主办人','状态','操作'],// 写出所有表头信息 ,
colModel: [ // 列的模型
{name: 'maId', index:'ma_id', key: true, hidden: true},//设置第一列的各种属性 指的是活动id name是值json数据传回来时里面的对应的key 真正放这的是值 例如:json是{maId,1} 那么放这里的就是1 index是进行排序时 请求(与交互)后台排序的列名 这里与数库中的字段名相匹配 key:true 是设置这是这个列的唯一标示 hidden:true 是指 此列为隐藏列 并不显示 但也站位colnames中的一个
{name: 'dealType', index:'deal_type', hidden: true},
/** 下面这个是指定宽度 单位是px formatter:function 是用来解决我们把一些数据库的数据 转换成其他想要的数据 连接等问题的
* 指定此方法一定有返回值 返回值可以是一个html文档 此方法含有sane参数 我们一般用最后面的参数居多
* rowData是指当前行的数据 获取方式 直接加上"." 列名即可(因为是js里面 他的本质原理也是讲json数据解析成了数组 数组中是键值对) options也可以用 下面的options.rowId 指的是我们的操作的行的主键(唯一标示)就是刚才的用(key=true)指定的maid列
* 由此就有回道了原生url传递参数 获取参数的问题了
*/
{name: 'name', width:'350', index: 'name',formatter: function(cellvalue, options, rowData){
var dealType = rowData.dealType;//活动状态 。0:主活动 ;1:协同活动;2:邀约活动
var rowId = options.rowId;
var name = rowData.name;
var state = rowData.state;
//var temp='<a href="'+webContext+'/act/forwardActDetail?maId='+rowId+'&actFlag=invite" >'+name+'</a>';
var temp='<a href="'+webContext+'/marketa/fowardEditActivity?maId='+rowId+'&editFlag=edit" >'+name+'</a>';
if(2==state){//2:申请中;
temp=name;
}else if(3==state||2==dealType){//3:已拒绝
//}else if((3==state&&1==dealType)||2==dealType){//3:已拒绝
temp=name;
}
//var temp='<a href="'+webContext+'/marketa/fowardEditActivity?maId='+rowId+'&editFlag=detail" >'+name+'</a>';
if(1==dealType){
temp = temp+'<span class="label-act-xiezuo label-info">协作</span>';
}else if(2==dealType){
temp = temp+'<span class="label-act-xiezuo label-info" style="background-color:#ffb915">邀约</span>';
}else if(4==dealType){
temp = '&nbsp;|-&nbsp;'+temp;
}
return temp;
}},
{name: 'points', width:'120', index:'points'},
{name: 'createTime', width:'160', index:'create_time'},
{name: 'conversionRate', width:'120', index:'conversion_rate',formatter: function(val){ //一个值的情况加 val指的是当前的值
var cellValue = val;
if(typeof (cellValue)!='undefined' && cellValue!=null){
cellValue = cellValue*100+'%';
}else{
cellValue = cellValue+'%';
}
return cellValue;
}},
{name: 'createUserId', index:'create_user_id',hidden: true},
{name: 'createUserName', width:'120', index:'create_user_name'},//申请人姓名
{name: 'ownerUserId', index:'owner_user_id',hidden: true},
{name: 'ownerUserName', width:'120', index:'owner_user_name'},
{name: 'state', align:'left', index:'state',formatter: function(val){
var cellValue = val;//活动状态 。0:进行中 ;1:已结束;2:申请中;3:已拒绝
if(cellValue == 0){
cellValue = '<span class="act-table-acting">推广中</span>';
}else if(cellValue == 1){
cellValue = '<span class="act-table-end">已完成</span>';
}else if(cellValue == 2){
cellValue = '<span class="act-table-planing">策划中</span>';
}else if(cellValue == 3){
cellValue = '<span class="act-table-refuse">已拒绝</span>';
}
return cellValue;
}},
{name: 'edit', align:'left', sortable: false, formatter: function(cellvalue, options, rowData){
var rowId = options.rowId;
//需要根据记录的具体情况进行处理
var state = rowData.state;
var dealType = rowData.dealType;//处理类型 0:主活动 ;1:协同活动;2:邀约活动
//可用的按钮
var agree = '<a href="'+webContext+'/marketa/forwardCreateActivity?maId='+rowId+'" title="接受" class="handle-col mr-left10" onclick="agreeActivity('+rowId+')">接受</a>';
var refuse = '<a href="javascript:;" title="拒绝" class="handle-col mr-left10" onclick="refuseActivity('+rowId+')" data-toggle="modal" data-target="#act_dialog">拒绝</a>';
var edit = '<a href="'+webContext+'/marketa/fowardEditActivity?maId='+rowId+'&editFlag=edit" title="编辑" class="handle-col mr-left10" onclick="scanActivity('+rowId+')">编辑</a>';
//灰色的不可用按钮
var agree_ = '<span href="javascript:;" title="接受" class="handle-col-no mr-left10">接受</span>';
var refuse_ = '<span href="javascript:;" title="拒绝" class="handle-col-no mr-left10">拒绝</span>';
var edit_ = '<span href="javascript:;" title="编辑" class="handle-col-no mr-left10">编辑</span>';

var agreeChoose = '<a href="javascript:;" title="接受" class="handle-col mr-left10" onclick="agreeChoose('+rowId+')" data-toggle="modal" data-target="#choose_dialog">接受</a>';

//根据状态赋予按钮
if(2==dealType){//选择人
if(2>state){
//return refuse_+agreeChoose+edit_;
return edit_;
}else{
//return refuse_+agree_+edit_;
return edit_;
}
}else if(0==state){//活动状态 。0:进行中 ;
//return refuse_+agree_+edit;
return edit;
}else if(1==state){//1:已结束;
//return refuse_+agree_+edit_;
return edit_;
}else if(2==state){//2:申请中;
//return refuse+agree+edit_;
return edit_;
}else{//3:已拒绝
//return refuse_+agree_+edit_;
return edit_;
}
}},
],

jsonReader: { //server返回Json解析设定 因为他是个三方提供的pagelist对象 他里面的list存放的才是页面真正的数据
root: "list", //对于json中数据列表
page: "pageNum", //相当于 pageList.pageNum 取值给他了
total: "pages", //同上
records: "total",//总的记录数 (下面loadComplete中使用到了)
repeatitems: false,
},
beforeRequest: function () {//在请求数据之前
var postData = {}; // 传递参数准备!
postData.userId = loginUser.userId; //相当于 userId:XXX
postData.searchText = $('#searchText').val(); //获取查找框的值 searchText:查找内容
$.extend($("#actGridTable").getGridParam("postData"), postData);// 给grid函数加上这个postData属性 这个属性是指请求时的 用户参数
},
loadComplete: function(){//加载完成后
var re_records = $("#actGridTable").getGridParam('records');// 记录总数是多少
//alert(re_records);
if(re_records == 0 ){
$("#tishi").show();
}else{
$("#tishi").hide();
}
},
resizeable: true,
rownumbers: true,//显示记录条数
hidegrid: true,
//shrinkToFit:true,
viewrecords: true,//定义是否要显示总记录数
sortorder: 'desc',//指定按升序还是倒序
sortname: 'create_time',//指定排序列
height: "100%",
autowidth: true,
rowList: [10, 15, 20],//一个数组用来调整表格显示的记录数,此参数值会替代rowNum参数值传给服务器端。
rowNum: 15,// 默认一页显示15条
//caption: "组织列表",
pager: "#actGridPager"// 前后页
}).navGrid('#actGridPager', {add: false, edit: false, del: false, search: false, refresh: false});

//去掉水平滚动条
$('#actGridTable').closest(".ui-jqgrid-bdiv").css({ 'overflow-x': 'hidden' });

}

jqgrid项目使用记录/注释版/未整理/的更多相关文章

  1. Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取

    百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g   第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21 ...

  2. 经典剪枝算法的例题——Sticks详细注释版

    这题听说是道十分经典的剪枝算的题目,不要问我剪枝是什么,我也不知道,反正我只知道用到了深度搜索 我参考了好多资料才悟懂,然后我发现网上的那些大神原理讲的很明白,但代码没多少注释,看的很懵X,于是我抄起 ...

  3. eclipse快捷键(Mac版)整理

    eclipse快捷键(Mac版)整理 前言: 最近在学习JDBC,老师用的是eclipse,对于习惯了IDEA的我来说,没有了快捷键,效率明显下降. 我认为,开发工具的熟练使用,也是程序员必备的一项技 ...

  4. Ionic3项目实践记录

    Ionic3首次项目实践记录 标签(空格分隔): Angular Ionic Ionic3踩坑 1. 路由懒加载(lazy load) 如果设置了懒加载,就必须全部懒加载(包括TabsPage),否则 ...

  5. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(二)

    用mogoose搭建restful测试接口 接着上一篇(Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一))记录,今天单独搭建一个restful测试接口,和项目前 ...

  6. Unity3D Demo项目开发记录

    前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行入门了,正所谓好记性不如烂笔头,更何况本人并非专业从事unity3D开发,会一点C#但也并不熟悉,为了避免后期遗忘,因此特意整理了一个D ...

  7. 强化学习 reinforcement learning: An Introduction 第一章, tic-and-toc 代码示例 (结构重建版,注释版)

    强化学习入门最经典的数据估计就是那个大名鼎鼎的  reinforcement learning: An Introduction 了,  最近在看这本书,第一章中给出了一个例子用来说明什么是强化学习, ...

  8. Anytime项目开发记录0

    Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...

  9. 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

    Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash c ...

随机推荐

  1. Ubuntu下部署SVN+SVNManager

    本文参考了一下博客,特此感谢: 灰烬之灵    一米阳光做IT.测试 环境描述:ubuntu 13.04 1.先创建svn组和svn用户: sudo addgroup svnsudo useradd ...

  2. Win7旗舰版的nfs服务器如何架设? - Microsoft Community

    Win7旗舰版的nfs服务器如何架设? - Microsoft Community Win7旗舰版的nfs服务器如何架设?

  3. 问题-WIN7 ..\Bin\InitCC32.exe".进程无法访问(拒绝访问)

    问题现象: 问题原因:是InitCC32.exe没有权限. 问题处理:在DELPHI7的安装目录里设置用户权限,加入EVE... 这个用户.

  4. [iOS基础控件 - 3.3] 图片浏览器

    需求: 1.显示当前图片序号/总图片数 2.显示图片 3.上一张图片.下一张图片转换 4.显示图片描述     A.数据的加载方式 1.逐个加载.处理 2.使用数组.字典分离数据和逻辑 3.延迟加载 ...

  5. [C语言 - 14] 进制

    进制 二进制 int number = 0B1010; 没有二进制的输出格式   八进制     int number2 = 07613;     printf("number2 = %o\ ...

  6. BNUOJ 26579 Andrew the Ant

    LINK:Andrew the Ant 题意:给一根长度为L的木头,上面有A只蚂蚁[每只蚂蚁给出了初始行走的方向,向左或向右].当两只蚂蚁相碰时,两只蚂蚁就朝相反的方向行走~╮(╯▽╰)╭问的是:最后 ...

  7. 自定义文件上传的按钮的样式css+js

    核心就是一段css遮住了原生的input框,然后用js将文件的值传入到另一个指定的input框中 原文链接 http://geniuscarrier.com/how-to-style-a-html-f ...

  8. Winodws安装系统时,通过安装磁盘进行分区

    今天使用一个系统盘安装的时候,很奇怪,分区总是分出来一个系统磁盘,一个MBR,剩下的只能分主分区. 这样就导致我在进行windows激活时,激活工具都找不到启动磁盘的盘符(因为自动分出来的系统磁盘和M ...

  9. 剑指OFFER之最小的K个数(九度OJ1371)

    题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 输入: 每个测试案例包括2行: 第一行为2个整数n,k(1< ...

  10. NSArrary和NSString间的转换

    将string字符串转换为array数组 NSArray  *array = [Str componentsSeparatedByString:@","]; // 注意:NSArr ...