LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【JavaScript】WEB jquery jqgrid方法纯JS展现和编辑大量数据

admin
2023年8月22日 18:35 本文热度 492

JQuery jqGrid是开发Web应用程序中数据表格的一种非常强大、灵活和可自定义的工具。它提供了多种功能,例如分页、排序、搜索、编辑、滚动和导出等,可以与多种数据源进行交互。它的使用简单、灵活,能够处理大量数据,具有高度的自定义性。了解了JQuery jqGrid的各种方法,我们可以更好地管理和展示大量的数据表格,使得数据更加易于管理、搜索和分析。

JQuery jqGrid是一种强大、灵活和可自定义的Javascript表格插件,它采用了JQuery框架进行开发,可以帮助用户快速、轻松地创建和管理复杂的数据表格。它提供了丰富的特性和功能,例如分页、排序、搜索、编辑、滚动和导出等。

JQuery jqGrid主要被用于Web应用程序中的数据表格显示和编辑。它可以与多种数据源进行交互,例如XML、JSON和本地数组等。用户可以通过使用JQuery jqGrid插件,将复杂的数据表格转化为用户友好的界面,使得数据更加易于管理。

JQuery jqGrid是什么?

JQuery jqGrid是基于JQuery框架的一种Javascript表格插件,也是一种开源项目。它支持多种数据源进行交互,可以处理大量数据,还提供较为灵活和自定义的配置选项。

JQuery jqGrid特点:

  1. 可高度自定义和灵活

JQuery jqGrid使用简单和灵活。用户可以根据自己的需求和喜好调整表格的外观和功能。

  1. 处理大量数据

JQuery jqGrid可以处理大量的数据,支持分页和滚动操作。这极大地增强了表格的可用性和效率。

  1. 支持多种数据格式

JQuery jqGrid可以与多种数据格式进行交互,包括XML,JSON,本地数组等。

  1. 支持排序和搜索

JQuery jqGrid提供排序和搜索功能,可以根据表格的列数据进行排序操作,并进行复杂的搜索。这使得用户可以更加方便地找到需要的数据。

  1. 支持编辑和行操作

JQuery jqGrid可以编辑和行操作。用户可以在表格内进行编辑、删除、复制、粘贴等操作,并且支持行拖拽和调整大小。

Jqgrid入门-显示基本的表格(一)

 首先对Jqgrid网格插件做个简要的说明。在众多的表格插件中,Jqgrid的特点是非常鲜明的。

        特点如下:

  • 完整的表格呈现与运算功能,包含换页、栏位排序、grouping、新增、修改及删除资料等功能。

  • 自定义的工具列。

  • 预设的Navigator工具列,可以很容易的使用新增、删除、编辑、检视及搜寻等功能。

  • 完整的分页功能。

  • 按下任一栏位的标头,皆可以该栏位为排序项目。无论是升序或降序皆可。

  • 预设的action formatter,可以快速而直觉地对每笔资料做运算。

  • 支持多种数据格式。比如json、xml、array等。

(1)HTML部分 

 想要顺利的使用Jqgrid,需要引用下面6个文件。分别是:

  • jquery-ui-1.8.1.custom.css(jQuery UI界面的CSS文件)

  • ui.jqgrid.custom.css(专用于jqGrid界面的CSS文件)

  • jquery-1.7.2.js(jQuery的核心)

  • jquery-ui-1.8.1.custom.min.js(用于支持jQuery UI界面)

  • grid.locale-zh-CN.js(针对jqGrid的locale设置,根据locale不同,选择不同的尾缀)

  • jquery.jqGrid.min.js(jqGrid的核心,可以到jqGrid网站,根据需求选择模块下载)

      然后在html的body里面创建一个table和div并赋予id属性就行了。如下,非常简洁。

1.  <link href="<%=basePath%>main/css/ui.jqgrid.css" rel="stylesheet" type="text/css" />

2.  <link href="<%=basePath%>main/css/jquery-ui-1.8.1.custom.css" rel="stylesheet" type="text/css" />

3.  <script type="text/javascript" src="<%=basePath%>main/js/jquery-1.7.2.js"></script>

4.  <script type="text/javascript" src="<%=basePath%>main/js/grid.locale-zh_CN.js"></script>

5.  <script type="text/javascript" src="<%=basePath%>main/js/jquery.jqGrid.min.js"></script>

6.  <script type="text/javascript" src="<%=basePath%>main/js/grid.custom.js"></script>

7.  <table id="list"></table>

8.  <div id="page"></div>

table是jqgrid的表格获取的id

div#page是分页使用

(2)JS部分

官方文档说实现一个要想生成一个 Jqgrid ,最直接的方法就是:

        $(“#grid_id”).jqGrid(options);也就是得到一个table的jquery对象,然后传递options就可以得到一个Jqgrid对象。

        简单的介绍下options中最重要的部分。

1. jqGrid的重要选项

具体的options参考,可以访问Jqgrid文档关于option的章节(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)。其中有几个是比较常用的,重点介绍一下:

  • url:提交处理数据的地址。

  • datatype:这个参数用于设定将要得到的数据类型。我最常用的是“json”,其余的类型还包括:xml、xmlstring、local、javascript、function、local。

  • mtype: 定义使用哪种方法发起请求,GET或者POST。

  • height:Grid的高度,可以接受数字、%值、auto,默认值为150。

  • width:Grid的宽度,如果未设置,则宽度应为所有列宽的之和;如果设置了宽度,则每列的宽度将会根据shrinkToFit选项的设置,进行设置。

  • shrinkToFit:此选项用于根据width计算每列宽度的算法。默认值为true。如果shrinkToFit为true且设置了width值,则每列宽度会根据width成比例缩放;如果shrinkToFit为false且设置了width值,则每列的宽度不会成比例缩放,而是保持原有设置,而Grid将会有水平滚动条。

  • autowidth:默认值为false。如果设为true,则Grid的宽度会根据父容器的宽度自动重算。重算仅发生在Grid初始化的阶段;如果当父容器尺寸变化了,同时也需要变化Grid的尺寸的话,则需要在自己的代码中调用setGridWidth方法来完成。

  • pager:定义页码控制条PageBar

  • sortname:指定默认的排序列,可以是列名也可以是数字。此参数会在被传递到服务端。

  • viewrecords:设置是否在PagerBar显示所有记录的总数。

  • caption:Grid的标题。如果设置了,则将显示在Grid的Header层 ;如果未设置,则标题区域不显示 。

  • rowNum:用于设置Grid中一次显示的行数,默认值为20。

  • rowList:一个数组,用于设置Grid可以接受的rowNum值。例如[10,20,30]。

  • prmNames:这是一个数组,用于设置jqGrid将要向服务端传递的参数名称。我们一般不用去改变什么。

  • colModel:最重要的数组之一,用于设定各列的参数。(稍后详述)

  • jsonReader:这又是一个数组,用来设定如何解析从Server端发回来的json数据。(稍后详述)

2. colModel的重要选项

        和Jqgrid一样colModel也有许多非常重要的选项,在使用搜索、排序等方面都会用到。这里先只说说最基本的。

  • name:为Grid中的每个列设置唯一的名称,这是一个必需选项,其中保留字包括subgrid、cb、rn。

  • index:设置排序时所使用的索引名称,这个index名称会作为sidx参数传递到服务端。

  • label:表格显示的列名。

  • width:设置列的宽度,目前只能接受以px为单位的数值,默认为150。

  • sortable:设置该列是否可以排序,默认为true。

  • search:设置该列是否可以被列为搜索条件,默认为true。

  • resizable:设置列是否可以变更尺寸,默认为true。

  • hidden:设置此列初始化时是否为隐藏状态,默认为false。

  • formatter:预设类型或用来格式化该列的自定义函数名。常用预设格式有:integer、date、currency、number等(具体参见文档)。

3. jsonReader选项

        jsonReader是Jqgrid的一个重要选项,用于设置如何解析从服务端发回来的json数据。其默认值为:

1.  jsonReader : {

2.  root : "rows", // 实际模型的人口

3.  page : "page", // 当前页码

4.  total : total, // 当前共多少页

5.  records : "records", // 总共多少行数据

6.  repeatitems : true,

7.  cell : "cell",

8.  id : "id",

9.  userdata : "userdata", // 数据

10.subgrid : {

11.root : "rows",

12.repeatitems : true,

13.cell : "cell"

14.}

15.}

我们可以这样理解,prmNames设置了如何将Grid所需要的参数传给服务端,而jsonReader设置了如何去解析从服务端传回来的json数据。如果没有设置jsonReader的话,Jqgrid将会根据默认的设置来解析json数据,并显示在表格里。一般情况下,我们修改jsonReader的root为服务端传递过来的数组就可以满足要求了。比如:

1.  jsonReader : {

2.  root : "dataList", // 服务端保存数据的集合

3.  records : "record", // 可以不要,因为我的服务端是record,不是默认的,才加上的

4.  repeatitems : false

5.  // 其它的全部默认就行

6.  }

由此,Jqgrid完成一个request,并将得到的response,解析为所需的数据,显示到Grid表格中。整个流程就走完了。

https://www.cnblogs.com/hongzai/p/3159546.html


Jqgrid入门-操作表格的数据(二)

上一篇中,Jqgrid已经可以从服务端获得数据,并显示在Grid表格中了。下面说一下,如何操作表格及其数据。

        jqGrid有很多方法函数,用来操作数据或者操作Grid表格本身。jqGrid的方法有两种调用方式:

          $(“#grid_id”).jqGridMethod( parameter1,…,parameterN );

或者

        $(“#grid_id”).jqGrid(‘method’, parameter1,…,parameterN );

        首先介绍一下Jqgrid的几个最常用的方法函数,具体的方法API也可以参考文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods) 。

1. getGridParam

        这个方法用来获得jqGrid的选项值。它具有一个可选参数name,name即代表着jqGrid的选项名,如果不传入name参数,则会返回 Jqgrid整个选项options。例如:

1.  var id = $("#gridTable").jqGrid("getGridParam", "selrow");      //获得选中行的ID

2.  var sort = $("#gridTable").jqGrid("getGridParam", "sortname");  //获得排序的字段

3.  var page = $("#gridTable").jqGrid("getGridParam", "page");      //获得当前的页数

4.  var row = $("#gridTable").jqGrid("getGridParam", "rowNum");     //获得当前页的行数

5.  var count = $("#gridTable").jqGrid("getGridParam", "records");  //获得总记录数

6.  var rows = $("#gridTable").jqGrid("getGridParam", "selarrrow"); //可以多选时,返回选中行的ID

2. getRowData

这个方法用来获得某行的数据。它具有一个rowid参数,Jqgrid会根据这个rowid返回对应行的数据,返回的是name:value类型的数组。如果rowid未能被找到,则返回一个空数组;如果未设置rowid参数,则以数组的形式返回Grid的所有行数据。例如:

1.  var getRowdata = function() {

2.  var selectedId = $("#gridTable").jqGrid("getGridParam", "selrow");

3.  var rowData = $("#gridTable").jqGrid("getRowData", selectedId);


3. addRowData

        这个方法用于向Grid中插入新的一行。执行成功返回true,否则返回false。它具有4个参数:

  • rowid:新行的id号;

  • data:新行的数据对象,形式为{name1:value1,name2: value2…},其中name为colModel中定义的列名称name;

  • position:插入的位置(first:表格顶端;last:表格底端;before:srcrowid之前;after:srcrowid之后);

  • srcrowid:新行将插入到srcrowid指定行的前面或后面。

        这个方法可以一次性插入多行,data参数必须是[{name1:value1,name2: value2…}, {name1:value1,name2: value2…}]这样的数组形式。例如:

1.  var addStudent= function() {

2.  var selectedId = $("#gridTable").jqGrid("getGridParam", "selrow");

3.  var dataRow = {

4.  id : 99,

5.  lastName : "Zhang",

6.  firstName : "San",

7.  email : "<a href="mailto:zhang_san@126.com">zhang_san@126.com</a>",

8.  telNo : "0086-12345678"

9.  };

10.if (selectedId) {

11.$("#gridTable").jqGrid("addRowData", 99, dataRow, "before", selectedId);

12.} else {

13.$("#gridTable").jqGrid("addRowData", 99, dataRow, "first");

14.}

15.};

 4. setRowData

        这个方法用于为某行数据设置数据值。执行成功返回true,否则返回false。它具有3个参数:

  • rowid:更新数据的行id;

  • data:更新的数据对象,形式为{name1:value1,name2: value2…},其中name为colModel中定义的列名称name;这个数据对象,不必设置完全,需要更新哪列,就设置哪列的name:value对;

  • cssprop:如果cssprop为String类型,则会使用jQuery的addClass为行增加相应名称的CSS类;如果为object类型,则会使用html的css属性,为行添加样式。如果只想增加css样式而不更新数据,可以将data参数设为false。

例如:

1.  var updateStudent = function() {

2.  var selectedId = $("#gridTable").jqGrid("getGridParam", "selrow");

3.  var dataRow = {

4.  lastName : "Li",

5.  firstName : "Si",

6.  email : "<a href="mailto:li_si@126.com">li_si@126.com</a>"

7.  };

8.  var cssprop = {

9.  color : "#FF0000"

10.};

11.$("#gridTable").jqGrid('setRowData', selectedId, dataRow, cssprop);

12.};


5. delRowData

        这个方法用于删除某行数据。执行成功返回true,否则返回false。具有一个参数rowid,代表要删除的行id。例如:

1.  var deleteStudent = function() {

2.  var selectedId = $("#gridTable").jqGrid("getGridParam", "selrow");

3.  $("#gridTable").jqGrid('delRowData', selectedId);

4.  };


6. trigger(“reloadGrid”)

        根据当前设置,重新载入Grid表格,即意味着向服务端重新发送一个新的请求。此方法只能用于已经构建好的Grid。此外,此方法不会使对colModel所做出的改变生效。应该使用gridUnload来重新载入对colModel的新设置。例如:

1.  $("#gridTable").jqGrid("setGridParam", {

2.  datatype : "json",

3.  search : true,

4.  mtype : "post"

5.  }).trigger("reloadGrid");


7. 其他方法

除了以上介绍的的方法外,jqGrid还有其他有用的方法,例如:addJSONData、clearGridData、hideCol、resetselection、setCaption、setGridHeight、setLabel、showCol等以及增强模块提供的方法,例如:filterGrid、GridDestroy、GridUnload、setColProp等。这些方法的具体用法,或浅显易懂,或不是非常常用。都可以参考官方文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods),得到具体指示。

https://www.cnblogs.com/hongzai/p/3159546.html

 

Jqgrid入门-使用模态对话框编辑表格数据(三)

 

Jqgrid是一个强大的表格插件,它提供了多种方式来编辑数据。这三种方式分别是:

  • Cell Editing——只允许修改某一个单元格内容

  • Inline Editing——允许在jqGrid中直接修改某一行的数据

  • Form Editing——弹出一个新的编辑窗口进行编辑和新增

       在我做的DEMO中,主要运用的是第三种, 弹出一个新窗口来编辑数据。如果想用其它两种方式可以参考官网。

        相比较之前的例子,这个例子最重要的变化是添加了一个id为consoleDlg的<div>块。在jquery的ready方法里面我将初始化div生成为一个模态对话框,用作编辑数据的界面。这个用到了jquery ui的dialog。关于如何使用dialog,参考这篇文章就ok了。这是主要的js代码,这个div放在哪里都可以。

1.  // 配置模态对话框

2.  $("#consoleDlg").dialog({

3.  autoOpen : false, // 是否自动弹出窗口

4.  modal : true, // 设置为模态对话框

5.  resizable : true,

6.  width : 500,

7.  height : 300,

8.  position : "center" // 窗口显示的位置

9.  });


       那么我们通过什么方式来打开这个窗口呢? 细心的朋友们可以发现我在前面的文章一的截图中,表格的最前面新增了一列操作栏。这个操作栏主要是通过Jqgrid的gridComplete方法来实现的。当表格所有数据都加载完成而且其他的处理也都完成时触发此事件。

1.  gridComplete : function() {

2.  var ids = jQuery("#gridTable").jqGrid('getDataIDs');

3.  for ( var i = 0; i < ids.length; i++) {

4.  var cl = ids[i];

5.  update = "<input type='button' value='修改' onclick='updateStu("

6.  + cl + ")'/>&nbsp;";

7.  del = "<input type='button' value='删除' onclick='deleteStu("

8.  + cl + ")'/>&nbsp;";

9.  view = "<input type='button' value='查看' onclick='viewStu("

10.+ cl + ")'/>";

11.jQuery("#gridTable").jqGrid('setRowData',

12.ids[i], {

13.process : update + del + view

14.});

15.}

16.},


   从这段代码我们可以看出,我们使用这个方法先获得表格所有列的id,然后在每一列中追加了三个按钮。这三个按钮点击时就会触发各自的方法。注意:代码中的process对应colModel中的列。

        按钮已经设置完成了,下面就该操作表格的数据了。

  •         添加数据

        点击页面上的新增按钮,就会弹出刚才初始化的模态对话框。如图:

       

        这是一个form表单,里面包含学生的基本信息,还有两个按钮。有的朋友可能会问这个对话框是在弹出来的呢?别急,看这里。

1.  /**

2.  * 弹出新增学生对话框

3.  */

4.  function addStu() {

5.  var consoleDlg = $("#consoleDlg");

6.  consoleDlg.html("");

7.  var a1 = " <iframe src='studentProcess.jsp?op=add'"+ "style='width: 100%;height: 100%' scrolling='auto' frameborder='0'></iframe>";

8.  consoleDlg.append(a1);

9.  consoleDlg.dialog("option", "title", "新增学生信息").dialog("open");

10.};


   原来点击按钮调用的是这个方法呀。解释一下,先获得这个对象,然后清空对话框里面的元素。然后追加一个iframe。再调用dialog的open方法。

   填写好表单,点击新增按钮。提示新增成功后,就可以在表格中看到刚才新增的同学了。不用刷新页面,Jqgrid有现成的方法。

   这是新增学生的具体方法。

1.  function addStu() {  // 序列化表单

2.  var obj2 = $("#myform").serializeArray();

3.  $.ajax({   url : "QueryActionUrl_addStu.action",

4.  data : obj2,

5.  dataType : "json",

6.  cache : false,

7.  type : "post",

8.  error : function(textStatus, errorThrown) {

9.  window.parent.hiAlert("系统ajax交互错误");   },

10.success : function(data, textStatus) {

11.if (data.messageBean.code == "200") {

12.hiAlert(data.messageBean.msg, "提示", function() {

13.window.parent.$("#consoleDlg").dialog("close");      // 刷新表格

14.window.parent.$("#gridTable").jqGrid("setGridParam", {

15.search : true,       mtype : "post"      }).trigger("reloadGrid", [ {

16.page : 1      }

17.]);

18.});

19.} else {

20.hiAlert(data.messageBean.msg, "提示", function() {

21.window.parent.$("#consoleDlg").dialog("close");     });

22.}

23.}

24.});

25.}


  • 修改数据

       修改数据的时候,和刚才新增方法就有点区别了。因为修改的时候要先把数据加载到对话框的表单中。如图:

 

      比如,我要修改李丽丽的信息。我们需要把原来的信息加载出来。所以在弹出对话框之前我们需要把这个学生的id也传递过来。如图:

1.  /**

2.  * 弹出修改学生的对话框

3.  */

4.  function updateStu(selectedRowId) {

5.  var consoleDlg = $("#consoleDlg");

6.  consoleDlg.html("");

7.  var str = $("#gridTable").jqGrid("getRowData", selectedRowId); // 根据行ID,获取选中行的数据

8.  id = {

9.  id : str.id

10.};

11.var a1 = " <iframe src='studentProcess.jsp?op=update&id="

12.+ JSON.stringify(id)

13.+ "' style='width: 100%;height: 100%' scrolling='auto' frameborder='0'></iframe>";

14.consoleDlg.append(a1);

15.consoleDlg.dialog("option", "title", "修改学生信息").dialog("open");

16.};

通过和上面新增方法对比,可以发现修改方法是先得到选中行的id,然后得到学生的id,最后通过json传递过去。

点击修改按钮,提示修改成功后,就可以在表格中看到修改后的学生数据了。

 这是修改学生的方法。

1.  function updateStu() {

2.  var obj2 = $("#myform").serializeArray();

3.  $.ajax({

4.  url : "QueryActionUrl_updateStu.action",

5.  data : obj2,

6.  dataType : "json",

7.  cache : false,

8.  type : "post",

9.  error : function(textStatus, errorThrown) {

10.window.parent.hiAlert("系统ajax交互错误");

11.},

12.success : function(data, textStatus) {

13.if (data.messageBean.code == "200") {

14.hiAlert(data.messageBean.msg, "提示", function() {

15.window.parent.$("#consoleDlg").dialog("close");

16.// 刷新表格

17.window.parent.$("#gridTable").jqGrid("setGridParam", {

18.search : true,

19.mtype : "post"

20.}).trigger("reloadGrid", [ {

21.page : 1

22.} ]);

23.});

24.} else {

25.hiAlert(data.messageBean.msg, "提示", function() {

26.window.parent.$("#consoleDlg").dialog("close");

27.});

28.}

29.}

30.});

31.}

  删除和查看数据就不做具体说明了,和修改差不多只是dao层中调用的方法不一样。在这些代码中只需关注op(操作标识)和传递的学生id。也可以这样做,在修改、删除和查看的时候,把学生的信息通过json全部传递过来,就不需要通过学生id去查询数据库了,减少与数据库的交互。


该文章在 2023/8/22 18:35:04 编辑过

全部评论2

admin
2023年8月22日 18:36

jQuery("#grid_id").jqGrid({                  //<table id="grid_id"></div>

    url: "UserServlet?method=getList",     // 加载数据时访问的url     具体的返回可以是xml,json

    datarype:"json"                              //返回的数据类型,后台需要返回一个json字符串 json,xml,xmlstring,local,javascript,function

    mtype : 'GET'                                //请求的方式     GET,POST

    height: $(window).height(),              //设置表格高度  auto,%值

    autowidth:ture                              //打开浏览器‘宽度自测’

 colName:['用户名','密码'],   // 表格表头

    colModel:[

                {name : 'myac',index :'myac',width : 80,formatter:'actions',delOption:true},

                {label : '用户',name : 'user',index :'user',width : 80,},

                 ],

   pager : "#gridPager",                       //导航栏,分页组件<div id="gridPager"></div>

   rowNum : 10,                                //设置显示记录条数,默认20,若返回的记录条数大于rowNum,grid只会显示rowNum规定的条数

   rowList : [10,20,30],                     //用与设置grid能够接受的rowNum值

   viewrecords:true,                           //设置是否显示总条数

   sortname : "time",

   sortorder : 'asc',                             //排序的列,倒序、顺序             asc/desc

   multiselect: true,                           //开启多选

   rownumber : true,                          //左侧的行号

   loadonce:                                   //若设置成true,则只从服务器请求一次数据,datatype被修改为local,且以后所有的操作都是基于客户端的操作

   subGrid: ture                                //默认为false,展开子格

   subGridUrl

   subGridModel

   subGridRowExpandedfunction(){}     //当点击“+”展开子表格时,将触发此选项定义的事件方法;

  subGridRowColapsed                          //当点击“-”收起子表格时,将触发此选项定义的事件方法;

  width:                                      //调整表格大小

  height                                      //调整表格大小

   pamNames :[]                                //用于设置jqgrid要向server传递的参数名称

   jsonReader:[]                               //用于解析server放回的json数据

});

//jQuery(window).height()代表了当前可见区域的大小,

 

//而jQuery(document).height()则代表了整个文档的高度,可视具体情况使

 pamNames:默认值

prmNames : {

page:"page", // 表示请求页码的参数名称

rows:"rows", // 表示请求行数的参数名称

sort: "sidx", // 表示用于排序的列名的参数名称

order: "sord", // 表示采用的排序方式的参数名称

search:"_search", // 表示是否是搜索请求的参数名称

nd:"nd", // 表示已经发送请求的次数的参数名称

id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称

oper:"oper", // operation参数名称

editoper:"edit", // 当在edit模式中提交数据时,操作的名称

addoper:"add", // 当在add模式中提交数据时,操作的名称

deloper:"del", // 当在delete模式中提交数据时,操作的名称

subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称

npage: null,

totalrows:"totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal

}

 

列名:colNames

colNames : [ '操作', '用户帐号', '用户密码', '所属权限组', '员工id'],

列属性:colMode                     

label:标签,标记                    colNames数组为空时,定义此列的标题。

name:对象的属性名                  其中保留字包括subgridcbrn

index:索引                            //排序,和向server传递参数的名称

align                                   //日期格式,可用/,-和.。作为间隔符。y、Y、yyyy用于4位年,YY、yy用于2位的月,d、dd用于日期

key                                      //设置主键列

hidedlg                              //该值不会出现在模式对话框中,默认值为false

width:宽度                             //  px单位

hidden:false                     //该列是否隐藏,默认false

align:center                      //居中

editable:可编辑的

editoptios:

edittype                           定义行编辑和表单模式的编辑类型,可以是texttextareaselectcheckbox passwordbuttonimagefile

editrules   

datefmt                          //日期格式,可用/,-和.。作为间隔符。y、Y、yyyy用于4位年,YY、yy用于2位的月,d、dd用于日期                 

sortable:true                   //该列是否可以排序 ,默认true

sorttype                        datatypelocal时,用于定义排序列类型。可取int/integer(整数)、float/number/currency(小数)、date(日期)、text(文本)

resizable: true,              //该列尺寸是否能更改,默认true

fromoptions                // 定义表单编辑的各种选项

formatter:'actions'           //用来预设类型或格式化该列的自定义函数名 ,常用预设格式:integer,date,currency、number

formatteroptions

formatter: function (cellvalue, options, rowObject) {

    if (cellvalue == '1') return "<img src='/Content/Images/checkokmark.gif'/>";

    if (cellvalue == '0') return "<img src='/Content/Images/checknomark.gif'/>";

}

delOption:true

删除(使用给出的actions

editurl:"userServlet?method=delete",

 

jqGrid  API:

 jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]);                         //加载本地数据  datatype:local

 jQuery("#gird_id").jqGrid('navGrid','#gridGager',{edit:false,add:false,del:falseposition:'right'}); 

 //设置的就是不显示编辑、添加、删除按钮(在分页组件里)

 jQuery("#grid_id").jqGrid('getGridParam','selrow');                  //返回选中行的id

 jQuery("#grid_id").jqGrid('getRowData',rowId);                       //获得选中行数据,rowId 行号

 jQuery("#grid_id").jqGrid('delRowData',rowId);                       //删除一行记录,servser不会删除

 jQuery("#grid_id").jqGrid('setRowData',rowId,datarow);            //更新一行数据,server不更新

 jQuery("#grid_id").jqGrid('addRowData',rowId,datarow);           //添加一行数据,server不添加

 jQuery("#grid_id").jqGrid('setselection',"rowId");                      //选中某一行

 jQuery("#grid_id").jqGrid('editRow',rowId)                            //编行行

 jQuery("#rowed1").jqGrid('saveRow',rowId);                           //保存

 jQuery("#rowed1").jqGrid('restoreRow',rowId);                       //取消

 jQuery("#grid_id").jqGrid('getGridParam','selarrrow');              //返回多行被选中的id,

 jQuery("#grid_id").jqGrid('getDataIDs');                                //获得所有巨鹿的id

 jQuery("#grid_id").jqGrid('getGridParam','records')               //获得总记录条数

 

重新载入数据:

  jQuery(grid_selector).setGridParam({

        data : data[0].dataList

       }).trigger("reloadGrid");

 

清空数据:

$(grid_selector).clearGridData();



该评论在 2023/8/22 18:38:57 编辑过
admin
2023年8月22日 18:39
 JQuery jqGrid是一种强大、灵活和可自定义的Javascript表格插件,它采用了JQuery框架进行开发,可以帮助用户快速、轻松地创建和管理复杂的数据表格。它提供了丰富的特性和功能,例如分页、排序、搜索、编辑、滚动和导出等。

JQuery jqGrid主要被用于Web应用程序中的数据表格显示和编辑。它可以与多种数据源进行交互,例如XML、JSON和本地数组等。用户可以通过使用JQuery jqGrid插件,将复杂的数据表格转化为用户友好的界面,使得数据更加易于管理。

JQuery jqGrid是什么?

JQuery jqGrid是基于JQuery框架的一种Javascript表格插件,也是一种开源项目。它支持多种数据源进行交互,可以处理大量数据,还提供较为灵活和自定义的配置选项。

JQuery jqGrid特点:

  1. 可高度自定义和灵活

JQuery jqGrid使用简单和灵活。用户可以根据自己的需求和喜好调整表格的外观和功能。

  1. 处理大量数据

JQuery jqGrid可以处理大量的数据,支持分页和滚动操作。这极大地增强了表格的可用性和效率。

  1. 支持多种数据格式

JQuery jqGrid可以与多种数据格式进行交互,包括XML,JSON,本地数组等。

  1. 支持排序和搜索

JQuery jqGrid提供排序和搜索功能,可以根据表格的列数据进行排序操作,并进行复杂的搜索。这使得用户可以更加方便地找到需要的数据。

  1. 支持编辑和行操作

JQuery jqGrid可以编辑和行操作。用户可以在表格内进行编辑、删除、复制、粘贴等操作,并且支持行拖拽和调整大小。

JQuery jqGrid使用方法

以下介绍JQuery jqGrid的使用方法:

  1. 引入JQuery jqGrid的文件

需要将JQuery jqGrid的CSS和JS文件引入到HTML文件中。例如:

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

<script type="text/javascript" src="jqgrid/js/jquery-1.10.2.min.js"></script>

<script type="text/javascript" src="jqgrid/js/jquery.jqGrid.min.js"></script>


  1. 定义表格标签

在HTML文件中定义表格标签的容器元素,例如:

<div id="gridContainer"></div>

  1. 定义表格属性

定义表格属性,包括URL,列名,列宽度和数据格式等。例如:

var grid = $("#gridContainer");

grid.jqGrid({

    url: "getData.php",  //请求后台的URL地址

    datatype: "json",   //数据格式

    colNames: ['ID', 'Name', 'Age'],  //列名

    colModel: [           //列的属性

        { name: 'id', index: 'id', width: 55, sorttype: "int" },

        { name: 'name', index: 'name', width: 90 },

        { name: 'age', index: 'age', width: 80, align: "right", sorttype: "float" }

    ],

    rowNum: 10,  //每页显示的记录数目

    rowList: [10, 20, 30],  //每页显示记录数目的选项

    pager: "#gridPager",  //表格分页的容器

    sortable: true,  //是否允许列排序

    multiselect: true,  //是否允许多选

    viewrecords: true,  //是否显示记录数

    width: 780,  //表格宽度

    height: 250  //表格高度

});


  1. 显示表格

将表格数据显示到页面上,例如:

grid.jqGrid('navGrid','#gridPager',{edit:false,add:false,del:false});

JQuery jqGrid常用方法:

  1. jqGrid()

用于初始化表格,设置表格的属性和配置。

  1. navGrid()

用于创建表格的导航菜单,支持添加、编辑、删除和搜索等操作。

  1. getRowData()

获取指定行的数据。

  1. setRowData()

设置指定行的数据。

  1. addRowData()

添加一行数据到表格中。

  1. delRowData()

删除指定行的数据。

  1. editRow()

编辑指定行的数据。

  1. saveRow()

保存指定行的数据。

总结:

JQuery jqGrid是开发Web应用程序中数据表格的一种非常强大、灵活和可自定义的工具。它提供了多种功能,例如分页、排序、搜索、编辑、滚动和导出等,可以与多种数据源进行交互。它的使用简单、灵活,能够处理大量数据,具有高度的自定义性。了解了JQuery jqGrid的各种方法,我们可以更好地管理和展示大量的数据表格,使得数据更加易于管理、搜索和分析。


该评论在 2023/8/22 18:44:08 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved