`
zhoujiangzi
  • 浏览: 92718 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jqGrid 使用

 
阅读更多

     最近接触到jqGrid这个插件,自己用了下,感觉还是比较方便,基于配置项来进行操作,下面就简单的记录初次使用的过程.

    jqGrid文档:http://www.trirand.com/blog/jqgrid/jqgrid.html

     这个文档比较重要,里面也有很大例子,可以参考下,下载好zip包后,然后导入到工程中,如下图所示



 

 然后新建一个页面,来进行测试工作,新建的页面只需要创建一个table就可以了,其他的标签都可以不用写,如:

<table id="grid_id"></table> 

   这样就可以了,当然如果需要分页,那么还可以添加一个分页的div,如:

<div id="pager"></div>

 这下body部分就完工了,就要开始将jqgrid的渲染到刚刚创建的table中,其实就是一些基础的配置信息,如表头啊,字段名称啊,外观显示等等,具体如下:

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

	
	<script src="js/jquery-1.7.2.js" type="text/javascript"></script>
	<link rel="stylesheet" type="text/css" media="screen" href="js/jquery-ui-1.9.2.custom.css" />
	<link rel="stylesheet" type="text/css" media="screen" href="js/ui.jqgrid.css" />

	<script src="js/grid.locale-cn.js" type="text/javascript"></script>
	<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
	
	<script type="text/javascript">
jQuery(document).ready(function(){ 
  jQuery("#grid_id").jqGrid({
    url:'getUserList',
    datatype: 'json',
    mtype: 'GET',
    colNames:['学号','姓名', '性别','出生日期','年龄','备注'],
    colModel :[ 
      {name:'xh', index:'xh',editable:true}, 
      {name:'xm', index:'xm',editable:true}, 
      {name:'xb', index:'xb',  align:'right',editable:true}, 
      {name:'csrq', index:'csrq',  align:'right',editable:true}, 
      {name:'nl', index:'nl',  align:'right',editable:true}, 
      {name:'bz', index:'bz',  sortable:false,editable:true} 
    ],
    pager: '#pager',
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'xh',
    sortorder: 'desc',
    viewrecords: true,
    caption: 'My first grid',
    autowidth:true,
    jsonReader : {  
    	      root:"invdata",  
    	       page: "currpage",  
    	      total: "totalpages",  
    	      records: "totalrecords",  
    	      repeatitems: false,  
    	       id: "0"  
    	    },
    	    subGrid:true,	    
    	    onSelectRow: function(ids) {
    	        if(ids != null) {
    	         	$("#grid_id").jqGrid("toggleSubGridRow",ids); //这里在选中的时候触发表格扩展
    	     }else{
    	       alert("没有选择行!");
    	     } 
    	    },
    	    subGridRowExpanded:function(subgrid_id,row_id){
    	    	console.log(subgrid_id + "   " + row_id);
    	    	createSubGrid(subgrid_id,row_id);
    	    }
  }); 
  
  
  /**
  *
  *    创建子表
  **/
  function createSubGrid(subgrid_id,row_id){
	  var  tableHtml = "<table id="+subgrid_id+"_t></table>";
	  $("#" + subgrid_id).html(tableHtml);
	  //根据ID行来获取该行的数据
	  var rowData=jQuery("#grid_id").jqGrid('getRowData',row_id);
	  console.log(rowData);
	  //通过getGridParam方法来获取对应参数信息
	  var colNames= jQuery("#grid_id").jqGrid('getGridParam','colNames');
	  console.log("colNames:" + colNames);
	  var str = "";
	  for(var i = 0;i<colNames.length;i++){
		  if(colNames[i] ==""){
			  continue;
		  }
		  str +=colNames[i];
		  if(i < colNames.length-1){
			  str += ",";
		  }
	  }
	  console.log("str:" + str );
	  
	  
	  var colModels = $("#grid_id").jqGrid('getGridParam','colModel');
	  console.log(colModels);
	  
	  $("#" + subgrid_id + "_t").jqGrid({
		  						colNames:colNames,
	  							colModel:colModels
	  });
	  
	 jQuery("#" + subgrid_id + "_t").jqGrid('addRowData',0,rowData);
	  
  }
  
  
  var parameters = {
		  caption:'新增',
		  buttonicon:'ui-icon-plus',
		  onClickButton:function(){
			  alert(3);
		  },
		  position: "last", 
		  title:"新增", 
		  cursor: "pointer"
  };
  
  
  //jQuery("#grid_id").navGrid("#pager").navButtonAdd("#pager",parameters);
  

  
  
  jQuery("#grid_id").jqGrid('navGrid',"#pager").jqGrid('navButtonAdd',"#pager",parameters);
  
}); 



</script>
	
  </head>
  
  <body>
    <table id="grid_id"></table>
    <div id="pager"></div>
  </body>
</html>

 

 

   部分配置说明:

  1.    pager:指定分页控件,采用jquery选择器的形式
  2. rowList:   一个每页显示多少条的下拉框,可以更改每页显示的记录数
  3. jsonReader : 定义读取服务器返回的数据格式,跟extjs类似
  4. subGrid: 这个比较关键,默认是false,设置为true之后,可以查看子表格数据
  5. onSelectRow:   鼠标点击行的时候触发的事件,当然也可以双击:ondblClickRow
  6. $("#grid_id").jqGrid("toggleSubGridRow",ids): 这个是单击的时候展开子表格的事件,toggle就是来回切换
  7. subGridRowExpanded: 展开子表格的时候触发的事件,可以在这里创建子表格,包括数据来源,表头等信息,当然也可以通过配置subGridUrl和subGridModel来加载
  8. jQuery("#grid_id").jqGrid('getGridParam','colNames');    通过getGridParam这个方法来获取对应的数据,比如colNames,colModel等。

对于表格下面的按钮,jqGrid是帮我们实现了界面,但是需要配置对应的URL,比如editUrl,然后才能进行修改操作。

 

 

  • 大小: 12.3 KB
分享到:
评论

相关推荐

    jqGrid使用XML數據源例子

    在这个“jqGrid使用XML數據源例子”中,我们将探讨如何配置jqGrid来从XML文件中获取并显示数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的格式,它被广泛用于数据交换和存储。XML...

    jqGrid使用帮助[参照].pdf

    jQgrid 使用帮助 jQgrid 是一个功能强大且灵活的表格控件,能够将数据动态地展示在网页上,并提供了丰富的编辑、增删查改、分类显示等功能。下面是对 jQgrid 的详细介绍: jQgrid 包说明 jQgrid 主要由以下几个包...

    jqgrid使用说明及实例

    这个压缩包包含了一份`jqgrid使用说明及实例.docx`文档,以及两个必要的库文件:`jquery-ui-1.9.2.custom.zip`和`jquery.jqGrid-4.4.3.zip`,旨在帮助开发者快速上手并应用jqGrid。 **使用说明:** 1. **引入库...

    Jqgrid使用手册

    **JqGrid 使用手册** JqGrid 是一个基于 jQuery 的数据网格插件,它提供了丰富的功能,用于在网页上展示和操作数据集。这个插件允许用户以表格形式展示大量数据,并支持排序、分页、搜索、编辑和更多高级功能。在本...

    jqgrid使用

    下面将详细介绍jqGrid的基本使用、核心功能以及如何进行设置。 ### 1. 安装与引入 首先,你需要在项目中引入jqGrid所需的JavaScript和CSS文件。通常,这包括`jquery.jqgrid.min.js`和`ui.jqgrid.css`。你可以通过...

    jqGrid使用范例

    在这个"jqGrid使用范例"中,我们将探讨如何将jqGrid与后端服务,包括Servlet和Struts2框架进行集成。 1. **jqGrid基本结构** jqGrid的核心是HTML表格元素,通过JavaScript脚本进行动态填充和操作。在HTML中,你...

    jqGrid使用帮助

    ### jqGrid 使用帮助 #### 一、jqGrid简介与组件说明 **jqGrid** 是一个高级、响应式且高度可定制的 jQuery 插件,它能够帮助开发者快速地创建复杂的数据表格界面。jqGrid 支持多种数据源格式(如 JSON、XML),...

    jqGrid使用demo: 数据加载 增加, 修改, 删除, 还原, 撤销等

    jqGrid支持从服务器动态加载数据,可以使用`url`参数指定数据源,通过`datatype`参数设置数据类型(如`json`或`xml`)。数据加载过程中,还可以配置分页、排序和搜索等功能,如`loadonce`(一次性加载所有数据)、`...

    jqgrid ace 使用手册 技巧

    例如,你可以使用`$("#gridId").jqGrid({...})`来初始化一个jqGrid实例。 3. **数据源**:jqGrid支持多种数据源,包括本地数组、JSON数据、XML数据以及AJAX请求。你可以通过`data`选项指定本地数据,或者通过`url`...

    jqgrid中文文档API

    jQgrid中文文档API jQgrid是一个功能强大且流行...本文档提供了jQgrid的中文文档API,涵盖了其原理、使用方法、参数配置、事件处理、数据处理、ColModel API等方面的知识点,为开发者提供了一个全面的jQgrid使用指南。

    jqGrid使用笔记.docx

    在 jqGrid 中,我们可以使用一系列方法来实现对表格数据的编辑操作。以下是关于 jqGrid 行编辑方法的详细说明: 1. **editRow**: 此方法用于将指定行切换到编辑模式。调用格式为 `editRow(rowid, keys, oneditfunc,...

    jqGrid_api中文文档

    jqGrid使用ajax技术来处理对数据的请求和响应。这意味着,页面上的操作可以异步地与服务器通信,无需重新加载整个页面即可更新数据。 3. jqGrid的皮肤 从版本3.5开始,jqGrid完全支持jquery UI的theme。这意味着...

    jqGrid_API中文

    jqGrid可以与其他前端框架如AngularJS、React或Vue.js结合使用,通过适当的封装和适配,使其成为这些现代框架中的数据展示组件。 总的来说,jqGrid是一款功能丰富的数据网格组件,通过其API和配置选项,开发者可以...

    jqgridDemo

    这个"jqgridDemo"应该是包含了一些基本和进阶的jqGrid使用示例,帮助用户快速理解和应用jqGrid到自己的项目中。由于描述中提到官方没有提供可以直接下载的demo,这个压缩包可能是个人或社区为了方便开发者而整理的...

    jqGrid 各种参数详解

    为了与服务器进行数据交换,jqGrid 使用 JSON 或 XML 格式。服务器返回的数据通常包含数据行、总行数、状态信息等,以便 jqGrid 正确地呈现和处理。 总的来说,jqGrid 提供了一个强大的工具集,使得在Web应用中展示...

    jqGrid手册教程一本通

    jqGrid使用ajax来实现请求与响应的处理。 接下来,我们来介绍一下jqGrid的皮肤。从3.5版本开始,jqGrid完全支持jqueryUI的theme。我们可以通过访问***来下载所需的主题,当然也可以自己编辑主题。对于jqGrid,我们...

    jqGrid3.6中文文档

    jqGrid 使用 AJAX 实现异步通信,当用户在前端操作表格(如筛选、排序、分页等)时,jqGrid 会通过 AJAX 请求将这些操作转换为对服务器的请求。服务器根据这些请求返回相应的数据或执行操作,然后将结果以 JSON 或 ...

    jqgrid 3.8.1 all in one

    "jqGrid使用帮助.doc"文档很可能是jqGrid 3.8.1的中文版用户手册,涵盖了如何安装、配置和使用jqGrid的基本步骤,以及更高级的功能如自定义列、处理服务器数据、使用API等。通过这份文档,开发者可以快速掌握jqGrid...

    jqgrid 资料合集(包括一个例子)

    这个资料合集包含了一个 jqGrid 的实例,以及相关的文档,可以帮助我们深入了解和使用 jqGrid。 首先,`jqGrid 使用助手.doc` 可能是一份详细指南,涵盖了如何初始化、配置、操作和自定义 jqGrid 的各个方面。这份...

Global site tag (gtag.js) - Google Analytics