jqgrid+bootstrap样式实践,报错数据加载,选中,删除等功能

需要引入的样式

bootstrap.min.css

ui.jqgrid.css

需要引入的JS

jquery.min.js

bootstrap.min.js
jquery.jqGrid.min.js

html代码:

  1. <div class="jqGrid_wrapper">
  2. <table id="jqGridList"></table>
  3. <div id="jqGridPager"></div>
  4. </div>

jqgrid初始化

  1. var jqGrid = $("#jqGridList");
  2. jqGrid.jqGrid({
  3. caption: "用户管理",
  4. url: "/User/GetList",
  5. mtype: "GET",
  6. styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式
  7. datatype: "json",
  8. colNames: ['主键', '登录帐号', '姓名','性别', '邮箱', '电话', '身份证'],
  9. colModel: [
  10. { name: 'Id', index: 'Id', width: 60, key: true, hidden: true },
  11. { name: 'Code', index: 'Code', width: 60 },
  12. { name: 'Name', index: 'Name', width: 60 },
  13. {
  14. name: 'Gender', index: 'Gender', width: 60,
  15. formatter: function(cellValue, options, rowObject) {
  16. return cellValue == 0 ? "男" : "女";
  17. }//jqgrid自定义格式化
  18. },
  19. { name: 'Email', index: 'Email', width: 60 },
  20. { name: 'Phone', index: 'Phone', width: 60 },
  21. { name: 'IdCard', index: 'IdCard', width: 60 }
  22. ],
  23. viewrecords: true,
  24. multiselect: true,
  25. rownumbers: true,
  26. autowidth: true,
  27. height: "100%",
  28. rowNum: 20,
  29. rownumbers: true, // 显示行号
  30. rownumWidth: 35, // the width of the row numbers columns
  31. pager: "#jqGridPager",//分页控件的id
  32. subGrid: false//是否启用子表格
  33. });
  34. // 设置jqgrid的宽度
  35. $(window).bind('resize', function () {
  36. var width = $('.jqGrid_wrapper').width();
  37. jqGrid.setGridWidth(width);
  38. });

其它jqgrid函数:

获取jqgrid选中的数据行:

  1. var id = $('#jqGridList').jqGrid('getGridParam', 'selrow');
  2. if (id)
  3. return $('#jqGridList').jqGrid("getRowData", id);
  4. else
  5. return null;

获取jqgrid的所有选中的数据

  1. var grid = $('#jqGridList');
  2. var rowKey = grid.getGridParam("selrow");
  3. if (rowKey) {
  4. var selectedIDs = grid.getGridParam("selarrrow");
  5. for (var i = 0; i < selectedIDs.length; i++) {
  6. console.log(selectedIDs[i]);
  7. }
  8. }

最终的效果图:

另附上后台控制器代码,又需要的可以看看

    1. /*******************************************************************************
    2. * Copyright (C) JuCheap.Com
    3. *
    4. * Author: dj.wong
    5. * Create Date: 2015/8/7 15:02:43
    6. * Description: Automated building by service@aspxpet.com
    7. *
    8. * Revision History:
    9. * Date         Author               Description
    10. *
    11. *********************************************************************************/
    12. using EP.Component.Tools;
    13. using EP.Site.Models;
    14. using System;
    15. using System.Linq;
    16. using System.Collections.Generic;
    17. using System.ComponentModel.Composition;
    18. using System.Web.Mvc;
    19. using System.Linq.Expressions;
    20. namespace EP.Site.Web.Areas.Adm.Controllers
    21. {
    22. /// <summary>
    23. /// 用户管理
    24. /// </summary>
    25. [Export]
    26. public class UserController : BaseController
    27. {
    28. [Import]
    29. public IAccountSiteContract AccountService { get; set; }
    30. [Import]
    31. public ISys_UserSiteContract UserService { get; set; }
    32. [Import]
    33. public ISys_ParameterSiteContract ParamService { get; set; }
    34. // GET: Adm/User
    35. public ActionResult Index()
    36. {
    37. return View();
    38. }
    39. // GET: Adm/User/Add
    40. public ActionResult Add()
    41. {
    42. return View();
    43. }
    44. // GET: Adm/User/Edit
    45. public ActionResult Edit(int id)
    46. {
    47. var model = UserService.GetByKeyId(id);
    48. return View(model);
    49. }
    50. /// <summary>
    51. /// 分页获取
    52. /// </summary>
    53. /// <param name="query"></param>
    54. /// <returns></returns>
    55. [HttpGet]
    56. public JsonResult GetList(QueryBase query)
    57. {
    58. try
    59. {
    60. Expression<Func<Sys_UserDto, bool>> exp = item => !item.IsDeleted && !item.IsUser;
    61. if (!query.SearchKey.IsBlank())
    62. exp = exp.And(item => item.Name.Contains(query.SearchKey) || item.Code.Contains(query.SearchKey));
    63. ResultDto<Sys_UserDto> dto = UserService.GetPages(query, exp, item => item.Id);
    64. return Json(dto, JsonRequestBehavior.AllowGet);
    65. }
    66. catch (Exception ex)
    67. {
    68. Log(ex);
    69. return Json(new ResultDto<Sys_UserDto>(), JsonRequestBehavior.AllowGet);
    70. }
    71. }
    72. /// <summary>
    73. /// 添加
    74. /// </summary>
    75. /// <param name="model"></param>
    76. /// <returns></returns>
    77. [HttpPost]
    78. public JsonResult AddModel(Sys_UserDto model)
    79. {
    80. var result = new Result<string>();
    81. try
    82. {
    83. if (model == null)
    84. throw new ArgumentException("参数错误");
    85. bool flag = AccountService.Insert(model);
    86. if (result.flag)
    87. {
    88. ActionLog("Sys_User", model, ActionType.Insert, CurrentUser);
    89. }
    90. result.flag = flag;
    91. }
    92. catch (Exception ex)
    93. {
    94. Log(ex);
    95. result.msg = ex.Message;
    96. }
    97. return Json(result, JsonRequestBehavior.AllowGet);
    98. }
    99. /// <summary>
    100. /// 编辑
    101. /// </summary>
    102. /// <param name="model"></param>
    103. /// <returns></returns>
    104. [HttpPost]
    105. public JsonResult EditModel(Sys_UserDto model)
    106. {
    107. var result = new Result<string>();
    108. try
    109. {
    110. if (model == null)
    111. throw new ArgumentException("参数错误");
    112. bool flag = AccountService.Edit(model);
    113. if (result.flag)
    114. {
    115. ActionLog("Sys_User", model, ActionType.Update, CurrentUser);
    116. }
    117. result.flag = flag;
    118. }
    119. catch (Exception ex)
    120. {
    121. Log(ex);
    122. result.msg = ex.Message;
    123. }
    124. return Json(result, JsonRequestBehavior.AllowGet);
    125. }
    126. }
    127. }

jqgrid+bootstrap样式实践的更多相关文章

  1. 从覆盖bootstrap样式谈css选择器优先级

    样式优先级 首先简单说几个定义样式的方式: 元素内嵌: <li><a href="" style="color:#ffffff;">SH ...

  2. 自定义bootstrap样式-9行样式自定义漂亮大气bootstrap导航栏

    有人说前端发展太快,框架太多,各有所需,各有所长.看看这幅图,估计都知道这些框架,但是大部分公司中实际要用到的也就那么几个. 发展再快,框架再多.还是得回到原点,不就是Html+Css+JavaScr ...

  3. Yii2框架bootstrap样式理解

    Yii2框架默认採用了bootstrap作为CSS风格,各种视图类组件都如此.之前一直採用默认风格,并在必要的时候加入或者改动一下class来达到目的.但在改版Yii1.1的orange项目时.发现之 ...

  4. js 重写 bootstrap 样式 alert/confirm 消息窗口

    相信很多人都受够了 alert.confirm 的样子,最近正在用 bootstrap 做项目,顺便封装了一个 bootstrap 样式的消息框. 实现起来很简单,bootstrap 本身就自带了 m ...

  5. Angular中使用bootstrap样式

    Angular中使用bootstrap样式 Angular中引入bootstrap的方法   方法1:在Angular.json中的styles数组中添加bootstrap路径 如下所示: " ...

  6. 利用vue v-bind属性绑定bootstrap样式以及输出数据

    自从知道了bootstrap,就被他简介,大气美观的样式吸引,即使在vue框架中,仍旧想使用,下面给出了vue适配版和原版的代码,以飨读者 数据输出部分 export default { data() ...

  7. Python--day62--使用Bootstrap样式的出版社

    没有使用之前: 使用Bootstrap样式之后:

  8. 自定义Bootstrap样式弹出框

    最近做的一些功能需要用到Bootstrap,然而原来的系统并没有引入Bootstrap,为了新写的控件能够应用于老的页面,又不需要在老的页面上引入全套的Bootstrap文件决定写一个模仿Bootst ...

  9. Sweetalert模态对话框与Swiper轮播插件、Bootstrap样式组件、AdminLTE后台管理模板地址

    Sweetalert纯JS模态对话框插件地址:http://mishengqiang.com/sweetalert/ AdminLTE后台管理模板系统地址(基于Bootstrap):https://a ...

随机推荐

  1. 我对BFC的理解

    最初这篇文章打算回答寒冬大神的第一问,谈谈CSS布局.本来呢我以为布局主要涉及float跟display相关属性,以及他们的包含框.静态位置等等.后来看了大神的一片面试文章,嗯?这里怎么还有个BFC, ...

  2. Webpack+React+ES6开发模式入门指南

    React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React,组件化似乎不再步履蹒跚,有了Reac ...

  3. node.js里npm install --save 与 npm install --save-dev 的区别

    在package.json可以看到一个放在package.json 的dependencies , 一个放在devDependencies里面. 目前找到的一些解答:真正跑在用户浏览器中的代码,比如j ...

  4. GDB 多线程调试:只停止断点的线程,其他线程任然执行; 或只运行某些线程 其他线程中断

    多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持all-stop模式,调试多线程程序时,如果某个线程断在一个断点上,你的调试器会让整个程序freeze,直到你continue这个线程,程 ...

  5. ★Kali信息收集~3.子域名系列

    ★3.1Netcraft :子域名查询  官网:http://searchdns.netcraft.com/ 输入要查询的域名,即可得知子域名 3.2Fierce :子域名查询 概述: fierce ...

  6. ★Kali信息收集~ 5.The Harvester:邮箱挖掘器

    官网:http://www.edge-security.com 安装:apt-get install theHarvester 运行:终端输入 theharvester (小写) 用法+参数:(返回邮 ...

  7. 基本数据结构(2)——算法导论(12)

    1. 引言     这一篇博文主要介绍链表(linked list),指针和对象的实现,以及有根树的表示. 2. 链表(linked list) (1) 链表介绍      我们在上一篇中提过,栈与队 ...

  8. IE开发人员工具之实用功能讲解

    F12快捷键调出开发人员工具 一.JS的内容格式化 1.内容较乱的js脚本: 2.勾选下面两项即可进行格式化脚本:自动换行与格式化JS 3.调理清楚的脚本 二:清空控制台 1.右键->清空 2. ...

  9. HTML5 之拖放(drag与drop)

    拖放(Drag 和 drop)是 HTML5 标准的组成部分. 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. HTML5 拖放实例 ...

  10. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...