项目第一次使用JqGrid ,发现功能强大,但由于对他不熟悉,也没有少走弯路,记录一下。

1、引用

<link href="~/Scripts/JqGrid/jqgrid/css/ui.jqgrid.css" rel="stylesheet" />
<link href="~/Scripts/JqGrid/jqgrid/css/css/start/jquery-ui-1.8.20.custom.css" rel="stylesheet" />
<script src="~/Scripts/JqGrid/jqgrid/js/jquery.jqGrid.min.js"></script>
<script src="~/Scripts/JqGrid/jqgrid/js/jquery.jqGrid.src.js"></script>
<script type="text/javascript" src="/Scripts/JqGrid/jqgrid/js/i18n/grid.locale-cn.js"></script>

2、页面

   <script>
$(function () {
//页面加载完成之后执行
pageInit();
});
function pageInit() {
//创建jqGrid组件
$("#list2").jqGrid(
{
url: '/ZhuTiFenXi/JSONData',//组件创建完成之后请求数据的url
datatype: "json",//请求数据返回的类型。可选json,xml,txt
colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes'],//jqGrid的列显示名字
colModel: [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式.....
{ name: 'id', index: 'id', width: 90,key:true }, //key:true 是设置主键,也就是下面的row_id的值
{ name: 'invdate', index: 'invdate', width: },
{ name: 'name', index: 'name asc, invdate', width: },
{ name: 'amount', index: 'amount', width: , align: "right" },
{ name: 'tax', index: 'tax', width: , align: "right" },
{ name: 'total', index: 'total', width: , align: "right" },
{ name: 'note', index: 'note', width: , sortable: false }
],
rowNum: ,//一页显示多少条
rowList: [, , ],//可供用户选择一页显示多少条
pager: '#pager2',//表格页脚的占位符(一般是div)的id
sortname: 'id',//初始化的时候排序的字段
sortorder: "desc",//排序方式,可选desc,asc
mtype: "post",//向后台请求数据的ajax的类型。可选post,get
         
viewrecords: true,
width: 998,
height: 650, //可以自己设置宽高
jsonReader: { repeatitems: false}, // 大坑在这里,这个属性没有写,chrome 中正常显示,IE和firefox中死都不出来,在网上搜索了很久才发现,oh shit !
//caption: "JSON Example",//表格的标题名字
subGrid: true, //设置是否显示加号
subGridRowExpanded: function (subgrid_id, row_id) { //subGridRowExpanded可以自定义表格类型, subgrid_id 是主表格的Id,row_id 是你选中的行的Id
$.ajax({
url: '/ZhuTiFenXi/JSONData',
data: {},
success: function (data) {
$("#" + subgrid_id).html("<table><tr><td>分页数:</td><td>" + data.page + "</td></tr></table>");
$("#" + subgrid_id).append("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><table><tr><td>分页数:</td><td>" + data.page + "</td></tr></table>");
$("#" + subgrid_id).append("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><table><tr><td>分页数:</td><td>" + data.page + "</td></tr></table>");
},
error: function (err) {
alert("err=" + data);
}
});
}
//, caption: "Subgrid Example" }).trigger("reloadGrid");
/*创建jqGrid的操作按钮容器*/
/*可以控制界面上增删改查的按钮是否显示*/
jQuery("#list2").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: false ,refresh:false,search:false}); //这两个属性控制左下角查询和刷新的
}
</script>
  //查询触发函数,查询的时候讲值从新带到jqGrid中
function SerachData() {
var userName = $("#userName").val();
var cardId = $("#cardId").val();// if (userName == "" && cardId=="") {
alert("请添加查询条件,在操作");
return;
} $.ajax({
type: "POST",
url: '/ZhuTiFenXi/JsonPersonInfoList',
dataType: 'json',
data: { 'userName': userName, 'cardId': cardId },
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (data) {
if (data) {
var mygrid = $('#list2')[];//必须要加,这个是个集合 就跟dataset一样
var myjsongrid = data;
mygrid.addJSONData(myjsongrid);
}
}
});
}

3、 后台数据

   public ActionResult JSONData()
{ List<LS_CLASS> lis = new List<LS_CLASS>();
LS_CLASS entity=new LS_CLASS();
entity.id="";
entity.invdate = "2007-10-06";
entity.name = "Client3";
entity.amount = "1000.00";
entity.tax = "0.00";
entity.total = "1000.00";
entity.note = "";
lis.Add(entity); LS_CLASS entity1=new LS_CLASS();
entity1.id="";
entity1.invdate = "2007-10-06";
entity1.name = "Client3";
entity1.amount = "1100.00";
entity1.tax = "1.00";
entity1.total = "2000.00";
entity1.note = "";
lis.Add(entity1); LS_CLASS entity2 = new LS_CLASS();
entity2.id = "";
entity2.invdate = "2007-10-06";
entity2.name = "Client3";
entity2.amount = "1100.00";
entity2.tax = "1.00";
entity2.total = "2000.00";
entity2.note = "";
lis.Add(entity2); LS_CLASS entity3 = new LS_CLASS();
entity3.id = "";
entity3.invdate = "2007-10-06";
entity3.name = "Client3";
entity3.amount = "1100.00";
entity3.tax = "1.00";
entity3.total = "2000.00";
entity3.note = "";
lis.Add(entity3); var a = new { page = , total = , records = , rows = lis, userdata = new { amount = , tax = , total = , name = "", Totals = "" } };
return Json(a,JsonRequestBehavior.AllowGet);
}   //单独一个类
public class LS_CLASS
{
public string id { get; set; }
public string invdate { get; set; }
public string name { get; set; }
public string amount { get; set; }
public string tax { get; set; }
public string total { get; set; }
public string note { get; set; }
}

4、效果

JqGrid 自定义子表格 及 自定义Json 格式数据不展示的更多相关文章

  1. jqgrid嵌套子表格

    jqgrid的subGrid子表格 jqGrid的一项高级功能就是嵌套子表格,使用起来也非常简单.使用的方式有两种: 使用普通的subGrid子表格: 使用一个完整jqGrid作为子表格: 1.选项含 ...

  2. springmvc4.0配置ajax请求json格式数据

    1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...

  3. JSON格式数据

    1. 基础知识 1. 什么是JSON格式? JSON格式是现在网站数据交互的标准数据格式,写入标准. 取代原来的XML:符合JS原生语法,可以被直接解析,不需要额外的解析文件. 书写简单,一目了然 2 ...

  4. 四:Spring Security 登录使用 JSON 格式数据

    Spring Security 登录使用 JSON 格式数据 1.基本登录方案 1.1 创建 Spring Boot 工程 1.2 添加 Security 配置 2.使用JSON登录 江南一点雨-Sp ...

  5. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  6. 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据

     目录 前言 1 Get方式和Post方式接口说明 2 OkHttp库简单介绍及环境配置 3 具体实现 前言 本文具体实现思路和大部分代码参考自<第一行代码>第2版,作者:郭霖:但是文中讲 ...

  7. iOS开发之JSON格式数据的生成与解析

    本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...

  8. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  9. fastJson java后台转换json格式数据

    什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

随机推荐

  1. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

  2. Chrome表单自动填充如何取消(暂时可行的解决办法)

    做项目时一直遇到一个问题,那就是用chrome测试的时候页面上的表单一直会自动填充,并且伴有黄色的背景颜色,有时候感觉很方便,有时候又很想去掉. 之前也多次寻找过方法,但是网上的方法都差不多,很多都是 ...

  3. vue各种实例集合

    注意:以下所有示例基于vue 2.x.Vuex 2.x. vm.$mount()-挂载: <body> <div id="a"> </div> ...

  4. Nginx配置服务器静态文件支持跨域访问

    在server中配置 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Reque ...

  5. StructureStreaming与kafka集成读取数据必要的jar包

    <dependency> <!--structurStreaming读取kafka1.0以下必须的jar--> <groupId>org.apache.spark& ...

  6. 3D模型文字动画

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 像黑客一样使用Linux命令行(转载)

    阅读目录 前言 使用 tmux 复用控制台窗口 在命令行中快速移动光标 在命令行中快速删除文本 快速查看和搜索历史命令 快速引用和修饰历史命令 录制屏幕并转换为 gif 动画图片 总结 回到顶部 前言 ...

  8. MyEclipse 10.7(版本:eclipse 3.7.x-Indigo系列)安装activiti-eclipse-plugin插件(流程设计器)

    基本信息 1.本机MyEclipse 10.7菜单[Help->About MyEclipse Enterprise Workbench]的版本信息: MyEclipse Enterprise ...

  9. 观实验室PPT演讲有感

    outline 一定要有 说话的语速要慢,压制住紧张的心情 提前一天发布PPT dont` argue with audience, especially professor and teachers ...

  10. bzoj 4540 [HNOI 2016] 序列 - 莫队算法 - Sparse-Table - 单调栈

    题目传送门 传送点I 传送点II 题目大意 给定一个长度为$n$的序列.询问区间$[l, r]$的所有不同的子序列的最小值的和. 这里的子序列是连续的.两个子序列不同当且仅当它们的左端点或右端点不同. ...