jqgrid怎么实现增删改查

jqgrid怎么实现增删改查,第1张

jqGrid的调用以及常用增删改查的使用方法 以下是代码参考一下吧

jquery grid是富客户端的,基于XML , Ajax网格插件的jQuery库。 jqGridView提供专业的解决方案,代表和编辑表格数据在网络上。精心设计的,具有强大的脚本API的,这可编辑网格是很简单的DHTML与XML 的配置,并显示出令人信服的成果与大量数据。现在我现在熟悉一下jquery grid的的使用方法和一些常用的option设置

jquery grid是富客户端的,基于XML , Ajax网格插件的jQuery库。 jqGridView提供专业的解决方案,代表和编辑表格数据在网络上。精心设计的,具有强大的脚本API的,这可编辑网格是很简单的DHTML与XML 的配置,并显示出令人信服的成果与大量数据。现在我现在熟悉一下jquery grid的的使用方法和一些常用的option设置。

1.调用grid

jqGrid已经可以从Server端获得数据,并显示在Grid表格中了。下面说一下,如何 *** 作Grid表格及其数据。

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

1 $("#grid_id").jqGridMethod( parameter1,...,parameterN )

或者

1 $("#grid_id").jqGrid('method', parameter1,...,parameterN )

2.常用的方法函数(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods )

1. getGridParam

这个方法用来获得jqGrid的选项值。它具有一个可选参数name,name即代表着jqGrid的选项名,例如:

1 var id = $("#gridTable").jqGrid("getGridParam", "selrow")

即可获得当前选中的行的ID。

注:selrow是jqGrid选项之一,默认值是null。这是一个只读选项,代表最后选中行的ID。如果执行翻页或者排序后,此选项将被设为null。关于其他选项,后续会有介绍。

如果不传入name参数,则会返回jqGrid整个选项options。

2. getRowData

这个方法用来获得某行的数据。它具有一个rowid参数,jqGrid会根据这个rowid返回对应行的数据,返回的是name:value类型的数组。例如:

1 var getContact = function() {

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

3

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

5

6 alert("First Name: " + rowData.firstName)

7 }

如果rowid未能被找到,则返回一个空数组;如果未设置rowid参数,则以数组的形式返回Grid的所有行数据。

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指定行的前面或后面。

例如:

01 var addContact = function() {

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

03

04 var dataRow = {

05 id : 99,

06 lastName : "Zhang",

07 firstName : "San",

08 email : "zhang_san@126.com",

09 telNo : "0086-12345678"

10 }

11

12 if (selectedId) {

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

14

15 } else {

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

17

18 }

19 }

这个方法可以一次性插入多行,data参数必须是[{name1:value1,name2: value2…}, {name1:value1,name2: value2…}]这样的数组形式,而且rowid参数也应该设为data参数对象中代表id的field名称。不过,此时的rowid不用必须是colModel中的一部分。

例如:

01 var addContact = function() {

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

03

04 var dataRow = [{

05 id : 99,

06 lastName : "Zhang",

07 firstName : "San",

08 email : "zhang_san@126.com",

09 telNo : "0086-12345678"

10 },

11 {

12 id : 100,

13 lastName : "Li",

14 firstName : "Si",

15 email : "li_si@126.com",

16 telNo : "0086-12345678"

17 },

18 {

19 id : 101,

20 lastName : "Wang",

21 firstName : "Wu",

22 email : "wang_wu@126.com",

23 telNo : "0086-12345678"

24 }]

25

26 if (selectedId) {

27 $("#gridTable").jqGrid("addRowData", "id", dataRow, "before", selectedId)

28

29 } else {

30 $("#gridTable").jqGrid("addRowData", "id", dataRow, "first")

31

32 }

33 }

注:我测试了一下,一次插入多行的情况下,用于设置插入位置的后两个参数,似乎没有起作用。插入的几行数据都被置于Grid的底端。

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。

5. delRowData

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

6. setGridParam

这个方法与getGridParam对应,用于设置jqGrid的options选项。返回jqGrid对象。参数为{name1:value1,name2: value2…}形式的对象(name来自jqGrid的options选项名)。某些选项在设置之后需要trigger("reloadGrid"),才能显示出效果。

7. setGridWidth

为Grid动态地设定一个新的宽度。两个参数:

new_width :以px为单位的新宽度值;

shrink :作用与jqGrid的shrinkToFit选项相同;如果此参数未设置,则沿用jqGrid的shrinkToFit选项的值。

8. trigger("reloadGrid")

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

你在增删改的Ajax的success里面不掉刷新表格的方法就不刷新喽。这个时候有以下两种方案:

1、不刷新表格,利用的jquery的remove和append等方法直接增加和删除对应的行信息。

2、刷新表格,你说多请求一次后台效率低,我建议在后台取数据时你做个分页,直接从数据库取出对应的页数的记录数,这样应该要快很多。

希望可以帮到你。

jqgrid在添加和修改时,如果添加或修改ajax返回成功的是true自动关闭form的设置有些不同。具体设置如下

在navGrid(elem, o, pEdit,pAdd,pDel,pSearch, pView)中

elem是设置显示添加修改等按钮的所在dom元素的id

o是设置哪些按钮可以用

后面的依次就是设置修改添加删除查询条件查看form的参数,参数都是{}对象

其中pEdit中如果reloadAfterSubmit:true,closeAfterEdit:false 这俩个都是默认值会延时1秒后自动关闭form,如果reloadAfterSubmit:false,closeAfterEdit:true。不延时直接关闭form

pAdd设置closeAfterAdd:true提交成功后就关闭。

也可以在afterComplete中写一个function自己控制form关闭,我习惯是这写先提示添加或者修改成功后再延时关闭form

注意以上都是在添加修改通过ajax提交到服务器端返回的信息是true时候才可能执行


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11302514.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存