• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)

jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)

作者:逆心 字体:[增加 减小] 来源:互联网

逆心 通过本文主要向大家介绍了jqgrid,搜索功能,jqgrid使用教程,jqgrid,分页后台实现等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

jqGrid 是一个用来显示网格数据的jQuery插件,通过使用jqGrid可以轻松实现前端页面与后台数据的ajax异步通信。

一、要引用的文件

要使用jqGrid,首先页面上要引入如下css与js文件。

1、css

<link href="/css/ui.jqgrid.css" rel="stylesheet" type="text/css" />

2、js

  <script src='/Scripts/js/jquery-2.0.3.min.js' type="text/javascript"></script>
  <script src='/Scripts/js/jqGrid/jquery.jqGrid.min.js' type="text/javascript"></script>
  <script src='/Scripts/js/jqGrid/i18n/grid.locale-en.js' type="text/javascript"></script>

二、使用要点说明

1、获取值

(1)、获取单个id

获取行号,有这种方式:

var rowid = $("#grid-table").jqGrid("getGridParam", "selrow");

但是经过实际验证,这种方式不可行,当选中行,再点击同一行会出现获取不到行号的情况。

最后先在js最外部定义一个变量selId,然后使用如下代码在选中行时赋值:

onSelectRow: function (rowid, status) {
    selId = rowid;  //给最外层的selId赋值
  }

(2)、获取多个选中行的id

var ids=$('#gridTable').jqGrid('getGridParam','selarrrow');

其输出格式是逗号分隔的id,如:

1,2,3,4,5

(3)、获得所有行的ID数组

var ids = $("jqgridtableid").jqGrid('getDataIDs');

(4)、获取行数据

如果想获取选择的行的数据,只要传入rowId即可,如下:

var rowData = $('#gridTable').jqGrid('getRowData',rowId);

而这个rowData是一个对象,如果要获取选择的行的这个对象的属性值,如name的值,需如下:

var Name= rowData.name;

(5)、获取单元格数据

var celldata = $("jqgridtableid").jqGrid('getCell',id,colnum);

(6)、设定行选中

  //设定选中行,可设定多行选中:
  $("jqgridtableid").jqGrid('setSelection',id1);
  $("jqgridtableid").jqGrid('setSelection',id2);

2、自定义分页、数据交互

何谓自定义?就是允许你用你自己喜欢的js对象与后端做数据交互。如jsonReader。

如果这个地方的Id设置错了,那么jqGrid就会自动以行号作为Id,这样会影响删除的。如果根据Id来删,很有可能删错行。

jsonReader: {
    id: "Id", //相当于设置主键
    root: "JsonArray",    //Json数据
    total: "TotalPage",   //总页数
    page: "CurrentPage",  //当前页
    records: "TotalRecord",//总记录数
    repeatitems: false
  },

这样一来,对于数据表格,在C#中,我可以用一个泛型类,就能够与jqGrid表格进行交互(其中,包括了分页信息,数据内容)。

/// <summary>
 /// 分页ViewModel
 /// </summary>
 public class jQGrid<T> where T : class
 {
  public jQGrid()
  { }

  /// <summary>
  /// 带4个参数的构造函数
  /// </summary>
  /// <param name="rows">每页显示行数</param>
  /// <param name="currentPage">当前页</param>
  /// <param name="totalRecord">结果总记录数</param>
  /// <param name="jsonArray">JSON数据</param>
  public jQGrid(int rows, int currentPage, int totalRecord, IList<T> jsonArray)
  {
   TotalPage = this.CalculateTotalPage(rows, totalRecord);
   CurrentPage = currentPage;
   TotalRecord = totalRecord;
   JsonArray = jsonArray;
  }

  public int TotalPage { get; set; }
  public int CurrentPage { get; set; }
  public int TotalRecord { get; set; }
  public IList<T> JsonArray { get; set; }

  /// <summary>
  /// 根据每页显示数与总记录数计算出总页数
  /// </summary>
  /// <param name="rows">每页显示数</param>
  /// <param name="totalRecord">结果总记录数</param>
  /// <returns></returns>
  public int CalculateTotalPage(int rows, int totalRecord)
  {
   return Convert.ToInt32(Math.Ceiling((double)totalRecord / (double)rows));
  }
 }

3、搜索的实现

搜索的实现主要通过jqGrid的postData像服务器端传递参数。

$("#btnSearch").click(function () {
    var rules = "";
    $("#multipleSearchDialog").each(function (i) { 
      $(".div-padding :input").each(function () {
        if ($(this).val()) {
          rules += '"' + $(this).attr("name") + '":"' + $(this).val() + '"';
        }
      })
    });
  ParamJson = '{' + rules + '}';
  var postData = $("#grid-table").jqGrid("getGridParam", "postData");
  $.extend(postData, { Param: ParamJson });
  $("#grid-table").jqGrid("setGridParam", { search: true }).trigger("reloadGrid", [{ page: 1}]); //重载JQGrid
  });

搜索功能主要通过postData向服务器端传递数据。后端获取参数从而进行处理:

Dictionary<string, string> DicParam = new Dictionary<string, string>();
  string Param = Convert.ToString(Request["Param"]);
  if (!string.IsNullOrEmpty(Param))
  {
    System.Web.Script.Serialization.JavaScriptSerializer sr = new System.Web.Script.Serialization.JavaScriptSerializer();
    DicParam = sr.Deserialize(Param, typeof(Dictionary<string, string>)) as Dictionary<string, string>;
  }

这样就获取到了查询参数的键值对,至于参数怎么用,一般都是用于sql的where子句。

三、更多jqGrid配置属性说明

1、属性

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • jQuery插件jqGrid动态获取列和列字段的方法
  • jqGrid翻页时数据选中丢失问题的解决办法
  • 获取jqGrid中选择的行的数据
  • jQGrid动态填充select下拉框的选项值(动态填充)
  • jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
  • jqGrid用法汇总(全经典)
  • jqGrid 学习笔记整理——进阶篇(一 )
  • jqGrid中文文档之选项设置
  • 基于PHP和Mysql相结合使用jqGrid读取数据并显示
  • Jqgrid之强大的表格插件应用

相关文章

  • 学习使用jQuery表单验证插件和日历插件
  • jq生成二维码
  • jQuery设计思想完整篇
  • jQuery 删除/替换DOM元素的几种方式
  • jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
  • jQuery中$this和$(this)的区别介绍(一看就懂)
  • jquery事件preventDefault()方法用法实例
  • jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
  • 基于JQuery实现的跑马灯效果(文字无缝向上翻动)
  • 以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于jquery性能最佳实践的讨论,与求教
    • 巧用jQuery选择器提高写表单效率的方法
    • jQuery实现图片预加载效果
    • jQuery 事件队列调整方法
    • jQuery 处理页面的事件详解
    • jquery实现键盘左右翻页特效
    • 在jQuery 1.5中使用deferred对象的代码(翻译)
    • 利用jquery操作select下拉列表框的代码
    • 浅谈jQuery中的checkbox问题
    • jquery实现的导航固定效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有