jqGrid与Struts2的结合应用(四) —— 丰富多彩的Pager Bar

在介绍排序与查询之前,先介绍一下Pager、Navigator和自定义按钮。

默认情况下,Pager Bar分为3个部分:

  • 页码栏区域(Pager)
  • 导航按钮区域(Navigator Buttons)
  • 记录信息区域(Record Information)


1. Pager和Record Information的常用属性

在jqGrid的options选项中,有许多是专门针对Pager的,之前的例子中已经使用了一个——“pager”选项,用来指明Pager Bar在页面中对应的区域。

主要的属性有:

  • pager :必须是一个有效的html元素。这个元素可以根据页面的需要,被放置于页面的任何位置。在指定pager选项的值的时候,可以使用三种形式:'pager'、'#pager'、$('#pager')。但推荐使用第二种,即'#pager'。
  • pgbuttons :决定在Pager Bar里是否显示用于翻页的按键,默认为true。
  • pginput :决定在Pager Bar里是否显示用于输入目标页码的输入框,默认为true。
  • pgtext :显示当前页码状态的字符串,这个与所选用的language文件有关,具体的文本格式定义在里面。例如默认的英文格式就是“Page {0} of {1}”,其中{0}代表当前载入的页码;{1}代表页码的总数。
  • pagerpos :用于定义页码栏在Pager Bar中的位置,默认情况下为center,还可以是left或right。
  • rowNum :定义一次性显示多少条记录,默认值为20;这个选项在第一篇文章中已经介绍过了。
  • rowList :定义rowNum可供选择的值的数组,默认值为空数组;这个选项在第一篇文章中也已经介绍过了。
  • lastpage :只读属性,返回页码总数,也即从response中解析出来的那个对应着“total”项的值(参见第一篇文章jsonReader部分)。
  • viewrecords :定义是否在Pager Bar中显示记录数信息。
  • recordpos :用于定义记录信息在Pager Bar中的显示位置,默认为right,还可以是left或center。
  • records :只读属性,返回记录总数,也即从response中解析出来的那个对应着“record”项的值(参见第一篇文章jsonReader部分)。
  • recordtext :记录信息显示时所使用的文本格式,只有当viewrecords为true,且记录总数大于0的时候才会显示。其格式与所选用的language文件有关,具体的文本格式定义在里面。例如默认的英文格式就是“View {0} - {1} of {2}”,其中{0}代表当前页第一条记录在整个记录总数中的位置;{1}代表当前页最后一条记录在整个记录总数中的位置;{2}代表所有记录的总数。


注1:这些属性(选项),并不都是可以用jqGrid的setGridParam方法在初始化之后改变值的。比如pgtext、recordtext、rowNum就是可以修改的,而其余的都是不能修改的,也即只能使用默认值,或者在jqGrid初始化的时候就定义好了。
注2:在jqGrid创建并初始化之后,修改这些关于Pager的属性,都必须执行trigger("reloadGrid")才能生效。
注3:在第一篇文章中我曾写到,经过测试jqGrid的caption似乎也不能用setGridParam方法改变并生效。我再次查了一下文档,发现这个选项也明确标注着也是不能改变,除非使用相应的setCaption方法。

2. Navigator

默认有6个预定义好的按钮:

  • 添加新行
  • 编辑选中的行
  • 查看选中的行
  • 删除选中的行
  • 查找记录
  • 重载表格

Navigator通过navGrid方法来配置导航栏,用法是:

$("#grid_id").navGrid('#gridpager',{parameters},prmEdit, prmAdd, prmDel, prmSearch, prmView);

$("#grid_id").jqGrid('navGrid','#gridpager',{parameters},prmEdit, prmAdd, prmDel, prmSearch, prmView);

关于各种参数的具体说明,请参考官方文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator )

2.1 关于Navigator的参数

  • add :定义是否启用添加操作的按钮;
  • addicon :用于添加操作的按钮上的图标,目前只能使用jQuery UI中的图标样式;
  • addtext :用于添加操作的按钮上的文本;
  • addtitle :用于添加操作的按钮上的tooltip;
  • del/delicon/deltext/deltitle :用于删除按钮的一套属性,可以参照添加按钮的几个属性;
  • edit/editicon/edittext/edittitle :用于编辑按钮的一套属性,可以参照添加按钮的几个属性;
  • refresh/refreshicon/refreshtext/refreshtitle :用于刷新表格按钮的一套属性,可以参照添加按钮的几个属性;当点击这个按钮时,将执行trigger("reloadGrid")并清除用于查询的参数;
  • refreshstate :定义如何重新载入Grid表格,firstpage:重新载入表格的第一页;current:重新载入当前页,并保存当前选中的行;默认为firstpage;
  • afterRefresh :定义点击刷新表格按钮之后的事件函数;
  • beforeRefresh :定义点击刷新表格按钮之前的事件函数;
  • search/searchicon/searchtext/searchtitle :用于查询按钮的一套属性,可以参照添加按钮的几个属性;当点击这个按钮时,将会调用searchGrid方法;
  • view/viewicon/viewtext/viewtitle :用于查看记录按钮的一套属性,可以参照添加按钮的几个属性;
  • addfunc :如果定义,则用定义的函数替代原有的add函数,这个函数将不接受任何参数;
  • editfunc :如果定义,则用定义的函数替代原有的edit函数,编辑的行的id作为参数传入这个函数;
  • delfunc :如果定义,则用定义的函数替代原有的del函数,编辑的行的id作为参数传入这个函数;
  • alertcap :当未选中任何行而点击编辑、删除、查看按钮时,弹出的提示框的标题;
  • alerttext :当未选中任何行而点击编辑、删除、查看按钮时,弹出的提示信息;
  • cloneToTop :定义是否“拷贝”一套导航按钮到Grid表格顶端的Pager中,默认为false;

借助这些选项,可以将上一篇中的例子,修改一下,更多的借助jqGrid内置的功能。例如,当载入行数据到对话框时,之前是通过在自定义的loadSelectedRowData方法中,调用jqGrid("getGridParam", "selrow")来检查是否有选中的数据行。现在在点击编辑或删除按钮的时候,可以通过jqGrid自己检查是否有选中的数据行,如果没有则弹出提示。如果有则选中的行,则还会将行id作为参数,传入对应的函数方法中。

将代码修改如下:

[javascript] view plain copy
  1. $(function(){ 
  2.     ... 
  3.      
  4.     $("#gridTable").jqGrid("navGrid", "#gridPager", { 
  5.         addfunc : openDialog4Adding,    // (1) 点击添加按钮,则调用openDialog4Adding方法 
  6.         editfunc : openDialog4Updating, // (2) 点击编辑按钮,则调用openDialog4Updating方法 
  7.         delfunc : openDialog4Deleting,  // (3) 点击删除按钮,则调用openDialog4Deleting方法 
  8.         alerttext : "请选择需要操作的数据行!"  // (4) 当未选中任何行而点击编辑、删除、查看按钮时,弹出的提示信息 
  9.     }); 
  10.      
  11.     ... 
  12. }); 
  13. var openDialog4Adding = function() { 
  14.     var consoleDlg = $("#consoleDlg"); 
  15.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  16.     consoleDlg.find("input").removeAttr("disabled").val(""); 
  17.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  18.     dialogButtonPanel.find("button:contains('创建')").show(); 
  19.     consoleDlg.dialog("option", "title", "创建新联系人").dialog("open"); 
  20. }; 
  21. var openDialog4Updating = function(rowid) { // (6) 接受选中行的id为参数 
  22.     var consoleDlg = $("#consoleDlg"); 
  23.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  24.      
  25.     consoleDlg.find("input").removeAttr("disabled"); 
  26.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  27.     dialogButtonPanel.find("button:contains('保存')").show(); 
  28.     consoleDlg.dialog("option", "title", "修改联系人信息"); 
  29.      
  30.     loadSelectedRowData(rowid); // (7) 将选中行id传入loadSelectedRowData方法 
  31. }; 
  32. var openDialog4Deleting = function(rowid) { // (8) 接受选中行的id为参数 
  33.     var consoleDlg = $("#consoleDlg"); 
  34.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  35.      
  36.     consoleDlg.find("input").attr("disabled", true); 
  37.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  38.     dialogButtonPanel.find("button:contains('删除')").show(); 
  39.     consoleDlg.dialog("option", "title", "删除联系人"); 
  40.      
  41.     loadSelectedRowData(rowid); 
  42. }; 
  43. var loadSelectedRowData = function(selectedRowId) { // (9) 接受选中行的id为参数 
  44.          
  45.     var params = { 
  46.         "contact.id" : selectedRowId 
  47.     }; 
  48.     var actionUrl = "viewContact.action"
  49.     // 从Server读取对应ID的JSON数据 
  50.     $.ajax( { 
  51.         url : actionUrl, 
  52.         data : params, 
  53.         dataType : "json"
  54.         cache : false
  55.         error : function(textStatus, errorThrown) { 
  56.             alert("系统ajax交互错误: " + textStatus); 
  57.         }, 
  58.         success : function(data, textStatus) { 
  59.             // 如果读取结果成功,则将信息载入到对话框中                  
  60.             var rowData = data.contact; 
  61.             var consoleDlg = $("#consoleDlg"); 
  62.             consoleDlg.find("#selectId").val(rowData.id); 
  63.             consoleDlg.find("#lastName").val(rowData.lastName); 
  64.             consoleDlg.find("#firstName").val(rowData.firstName); 
  65.             consoleDlg.find("#certificateNo").val(rowData.certificateNo); 
  66.             consoleDlg.find("#email").val(rowData.email); 
  67.             consoleDlg.find("#telNo").val(rowData.telNo); 
  68.             consoleDlg.find("#address").val(rowData.address); 
  69.             consoleDlg.find("#idCardNo").val(rowData.idCardNo); 
  70.             consoleDlg.find("#nationality").val(rowData.nationality); 
  71.              
  72.             // 根据新载入的数据将表格中的对应数据行一并刷新一下 
  73.             var dataRow = { 
  74.                     id : rowData.id, 
  75.                     lastName : rowData.lastName, 
  76.                     firstName : rowData.firstName, 
  77.                     email : rowData.email, 
  78.                     telNo : rowData.telNo 
  79.                 }; 
  80.              
  81.             $("#gridTable").jqGrid("setRowData", data.contact.id, dataRow); 
  82.                  
  83.             // 打开对话框 
  84.             consoleDlg.dialog("open"); 
  85.         } 
  86.     }); 
  87. }; 

说明:(2)(3)处意味着,当点击编辑或删除按钮时,如果有数据行被选中,则将行id作为参数传入对应的openDialog4Updating和openDialog4Deleting方法中;如果没有选中的行,则将弹出窗口,提示信息。

2.2 关于prmEdit、prmAdd、prmDel、prmSearch、prmView的参数

jqGrid本身为这些参数定义了默认值,而且不同的language文件也有各自的定义来覆盖原始的默认值。我们也可以在jqGrid重新定义新的值,以覆盖默认的值。

例如:

[javascript] view plain copy
  1. $("#gridTable").jqGrid("navGrid", "#gridPager",  
  2.     { 
  3.         addfunc : openDialog4Adding, 
  4.         editfunc : openDialog4Updating, 
  5.         delfunc : openDialog4Deleting, 
  6.         alerttext : "请选择需要操作的数据行!" 
  7.     }, 
  8.     {}, // prmEdit 
  9.     {}, // prmAdd 
  10.     {}, // prmDel 
  11.     {       // prmSearch 
  12.         caption: "查找"
  13.         Find: "Let's go!"
  14.         multipleSearch : true 
  15.     }, 
  16.     {}  // prmView 
  17. ); 

具体的参数如下,也可参考官方文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator )

[javascript] view plain copy
  1. $.jgrid = { 
  2. ... 
  3.    search : { 
  4.      caption: "Search..."
  5.      Find: "Find"
  6.      Reset: "Reset"
  7.      odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], 
  8.      groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], 
  9.      matchText: " match"
  10.      rulesText: " rules" 
  11.    }, 
  12.    edit : { 
  13.      addCaption: "Add Record"
  14.      editCaption: "Edit Record"
  15.      bSubmit: "Submit"
  16.      bCancel: "Cancel"
  17.      bClose: "Close"
  18.      saveData: "Data has been changed! Save changes?"
  19.      bYes : "Yes"
  20.      bNo : "No"
  21.      bExit : "Cancel"
  22.   }, 
  23.   view : { 
  24.     caption: "View Record"
  25.     bClose: "Close" 
  26.   }, 
  27.   del : { 
  28.     caption: "Delete"
  29.     msg: "Delete selected record(s)?"
  30.     bSubmit: "Delete"
  31.     bCancel: "Cancel" 
  32.   }, 
  33.   nav : { 
  34.     edittext: ""
  35.     edittitle: "Edit selected row"
  36.     addtext:""
  37.     addtitle: "Add new row"
  38.     deltext: ""
  39.     deltitle: "Delete selected row"
  40.     searchtext: ""
  41.     searchtitle: "Find records"
  42.     refreshtext: ""
  43.     refreshtitle: "Reload Grid"
  44.     alertcap: "Warning"
  45.     alerttext: "Please, select row"
  46.     viewtext: ""
  47.     viewtitle: "View selected row" 
  48.   }, 
  49. ... 

3. 自定义按钮

jqGrid还允许将自定义的按钮加入Page Bar,具体API是:

$("#grid_id").navGrid("#pager",...).navButtonAdd("#pager",{parameters});

或者

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

关于navButtonAdd的属性:

  • caption :按钮上的文本,可以是空值;
  • buttonicon :按钮上的图标,如果设为“none”,则只显示按钮上的文本;
  • onClickButton :当点击按钮时所调用的方法函数,默认为null;
  • position :添加新按钮的位置,first或last;默认为last;
  • title :新按钮的tooltip
  • cursor :当鼠标滑过按钮时的光标样式,默认为pointer;
  • id :为按钮设置id。

4. 自定义分隔符

$("#grid_id").navSeparatorAdd('#pager',{separator_parameters});

相关属性:

  • sepclass :分隔符的CSS样式;
  • sepcontent :分隔符中的内容;

附:相关代码

javascript部分:

[javascript] view plain copy
  1. $(function(){ 
  2.     // 配置jqGrid组件 
  3.     $("#gridTable").jqGrid({ 
  4.         url: "jqGrid03.action"
  5.         datatype: "json"
  6.         mtype: "GET"
  7.         height: 350, 
  8.         width: 600, 
  9.         colModel: [ 
  10.               {name:"id",index:"id",label:"编码",width:40},   
  11.               {name:"lastName",index:"lastName",label:"姓",width:80,sortable:false}, 
  12.               {name:"firstName",index:"firstName",label:"名",width:80,sortable:false}, 
  13.               {name:"email",index:"email",label:"电子邮箱",width:160,sortable:false}, 
  14.               {name:"telNo",index:"telNo",label:"电话",width:120,sortable:false
  15.         ], 
  16.         viewrecords: true
  17.         rowNum: 15, 
  18.         rowList: [15,50,100], 
  19.         prmNames: {search: "search"}, 
  20.         jsonReader: { 
  21.             root:"gridModel"
  22.             records: "record"
  23.             repeatitems : false 
  24.         }, 
  25.         pager: "#gridPager"
  26.         caption: "联系人列表"
  27.         hidegrid: false
  28.         shrikToFit: true 
  29.     }); 
  30.      
  31.     var alertText = "<div style="margin:0.3em; background:#FFFFFF; border:1px solid #A6C9E2; padding: 0.5em;" mce_style="margin:0.3em; background:#FFFFFF; border:1px solid #A6C9E2; padding: 0.5em;">请选择需要操作的数据行!</div>"
  32.      
  33.     $("#gridTable").jqGrid("navGrid", "#gridPager", { 
  34.         addfunc : openDialog4Adding,    // (1) 点击添加按钮,则调用openDialog4Adding方法 
  35.         editfunc : openDialog4Updating, // (2) 点击添加按钮,则调用openDialog4Updating方法 
  36.         delfunc : openDialog4Deleting,  // (3) 点击添加按钮,则调用openDialog4Deleting方法 
  37.         alerttext : alertText   // (4) 当未选中任何行而点击编辑、删除、查看按钮时,弹出的提示信息 
  38.     },{},{},{},{    // (5) 修改于查询相关的prmSearch参数 
  39.         caption: "查找"
  40.         Find: "Let's go!"
  41.         multipleSearch: true
  42.         groupOps: [{ op: "AND", text: "全部" }], 
  43.     },{}); 
  44.      
  45.     // 配置对话框 
  46.     $("#consoleDlg").dialog({ 
  47.         autoOpen: false,     
  48.         modal: true,    // 设置对话框为模态(modal)对话框 
  49.         resizable: true,     
  50.         width: 480, 
  51.         buttons: {  // 为对话框添加按钮 
  52.             "取消": function() {$("#consoleDlg").dialog("close")}, 
  53.             "创建": addContact, 
  54.             "保存": updateContact, 
  55.             "删除": deleteContact 
  56.         } 
  57.     }); 
  58. }); 
  59. var openDialog4Adding = function() { 
  60.     var consoleDlg = $("#consoleDlg"); 
  61.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  62.     consoleDlg.find("input").removeAttr("disabled").val(""); 
  63.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  64.     dialogButtonPanel.find("button:contains('创建')").show(); 
  65.     consoleDlg.dialog("option", "title", "创建新联系人").dialog("open"); 
  66. }; 
  67. var openDialog4Updating = function(rowid) { // (6) 接受选中行的id为参数 
  68.     var consoleDlg = $("#consoleDlg"); 
  69.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  70.      
  71.     consoleDlg.find("input").removeAttr("disabled"); 
  72.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  73.     dialogButtonPanel.find("button:contains('保存')").show(); 
  74.     consoleDlg.dialog("option", "title", "修改联系人信息"); 
  75.      
  76.     loadSelectedRowData(rowid); // (7) 将选中行id传入loadSelectedRowData方法 
  77. var openDialog4Deleting = function(rowid) { // (8) 接受选中行的id为参数 
  78.     var consoleDlg = $("#consoleDlg"); 
  79.     var dialogButtonPanel = consoleDlg.siblings(".ui-dialog-buttonpane"); 
  80.      
  81.     consoleDlg.find("input").attr("disabled", true); 
  82.     dialogButtonPanel.find("button:not(:contains('取消'))").hide(); 
  83.     dialogButtonPanel.find("button:contains('删除')").show(); 
  84.     consoleDlg.dialog("option", "title", "删除联系人"); 
  85.      
  86.     loadSelectedRowData(rowid); 
  87. var loadSelectedRowData = function(selectedRowId) { // (9) 接受选中行的id为参数 
  88.     var params = { 
  89.         "contact.id" : selectedRowId 
  90.     }; 
  91.     var actionUrl = "viewContact.action"
  92.     // 从Server读取对应ID的JSON数据 
  93.     $.ajax( { 
  94.         url : actionUrl, 
  95.         data : params, 
  96.         dataType : "json"
  97.         cache : false
  98.         error : function(textStatus, errorThrown) { 
  99.             alert("系统ajax交互错误: " + textStatus); 
  100.         }, 
  101.         success : function(data, textStatus) { 
  102.             // 如果读取结果成功,则将信息载入到对话框中                  
  103.             var rowData = data.contact; 
  104.             var consoleDlg = $("#consoleDlg"); 
  105.             consoleDlg.find("#selectId").val(rowData.id); 
  106.             consoleDlg.find("#lastName").val(rowData.lastName); 
  107.             consoleDlg.find("#firstName").val(rowData.firstName); 
  108.             consoleDlg.find("#certificateNo").val(rowData.certificateNo); 
  109.             consoleDlg.find("#email").val(rowData.email); 
  110.             consoleDlg.find("#telNo").val(rowData.telNo); 
  111.             consoleDlg.find("#address").val(rowData.address); 
  112.             consoleDlg.find("#idCardNo").val(rowData.idCardNo); 
  113.             consoleDlg.find("#nationality").val(rowData.nationality); 
  114.              
  115.             // 根据新载入的数据将表格中的对应数据行一并刷新一下 
  116.             var dataRow = { 
  117.                     id : rowData.id, 
  118.                     lastName : rowData.lastName, 
  119.                     firstName : rowData.firstName, 
  120.                     email : rowData.email, 
  121.                     telNo : rowData.telNo 
  122.                 }; 
  123.              
  124.             $("#gridTable").jqGrid("setRowData", data.contact.id, dataRow); 
  125.                  
  126.             // 打开对话框 
  127.             consoleDlg.dialog("open"); 
  128.         } 
  129.     }); 
  130. }; 
  131. var addContact = function() { 
  132.     var consoleDlg = $("#consoleDlg"); 
  133.          
  134.     var pLastName = $.trim(consoleDlg.find("#lastName").val()); 
  135.     var pFirstName = $.trim(consoleDlg.find("#firstName").val()); 
  136.     var pEmail = $.trim(consoleDlg.find("#email").val()); 
  137.     var pTelNo = $.trim(consoleDlg.find("#telNo").val()); 
  138.     var pAddress = $.trim(consoleDlg.find("#address").val()); 
  139.     var pIdCardNo = $.trim(consoleDlg.find("#idCardNo").val()); 
  140.     var pNationality = $.trim(consoleDlg.find("#nationality").val()); 
  141.      
  142.     var params = { 
  143.         "contact.lastName" : pLastName, 
  144.         "contact.firstName" : pFirstName, 
  145.         "contact.email" : pEmail, 
  146.         "contact.telNo" : pTelNo, 
  147.         "contact.address" : pAddress, 
  148.         "contact.idCardNo" : pIdCardNo, 
  149.         "contact.nationality" : pNationality 
  150.     }; 
  151.      
  152.     var actionUrl = "createContact.action" 
  153.      
  154.     $.ajax( { 
  155.         url : actionUrl, 
  156.         data : params, 
  157.         dataType : "json"
  158.         cache : false
  159.         error : function(textStatus, errorThrown) { 
  160.             alert("系统ajax交互错误: " + textStatus); 
  161.         }, 
  162.         success : function(data, textStatus) { 
  163.             if(data.ajaxResult == "success") { 
  164.                 var dataRow = { 
  165.                     id : data.contact.id,   // 从Server端得到系统分配的id 
  166.                     lastName : pLastName, 
  167.                     firstName : pFirstName, 
  168.                     email : pEmail, 
  169.                     telNo : pTelNo 
  170.                 }; 
  171.                  
  172.                 var srcrowid = $("#gridTable").jqGrid("getGridParam", "selrow"); 
  173.                  
  174.                 if(srcrowid) { 
  175.                     $("#gridTable").jqGrid("addRowData", data.contact.id, dataRow, "before", srcrowid); 
  176.                 } else
  177.                     $("#gridTable").jqGrid("addRowData", data.contact.id, dataRow, "first"); 
  178.                 } 
  179.                 consoleDlg.dialog("close"); 
  180.                  
  181.                 alert("联系人添加操作成功!"); 
  182.                  
  183.             } else
  184.                 alert("添加操作失败!"); 
  185.             } 
  186.         } 
  187.     }); 
  188. }; 
  189. var updateContact = function() { 
  190.     var consoleDlg = $("#consoleDlg"); 
  191.      
  192.     var pId = $.trim(consoleDlg.find("#selectId").val()); 
  193.     var pLastName = $.trim(consoleDlg.find("#lastName").val()); 
  194.     var pFirstName = $.trim(consoleDlg.find("#firstName").val()); 
  195.     var pEmail = $.trim(consoleDlg.find("#email").val()); 
  196.     var pTelNo = $.trim(consoleDlg.find("#telNo").val()); 
  197.     var pAddress = $.trim(consoleDlg.find("#address").val()); 
  198.     var pIdCardNo = $.trim(consoleDlg.find("#idCardNo").val()); 
  199.     var pNationality = $.trim(consoleDlg.find("#nationality").val()); 
  200.     var params = { 
  201.         "contact.id" : pId, 
  202.         "contact.lastName" : pLastName, 
  203.         "contact.firstName" : pFirstName, 
  204.         "contact.email" : pEmail, 
  205.         "contact.telNo" : pTelNo, 
  206.         "contact.address" : pAddress, 
  207.         "contact.idCardNo" : pIdCardNo, 
  208.         "contact.nationality" : pNationality 
  209.     }; 
  210.     var actionUrl = "updateContact.action"
  211.     $.ajax( { 
  212.         url : actionUrl, 
  213.         data : params, 
  214.         dataType : "json"
  215.         cache : false
  216.         error : function(textStatus, errorThrown) { 
  217.             alert("系统ajax交互错误: " + textStatus); 
  218.         }, 
  219.         success : function(data, textStatus) { 
  220.             if (data.ajaxResult == "success") { 
  221.                 var dataRow = { 
  222.                     id : data.contact.id, 
  223.                     lastName : pLastName, 
  224.                     firstName : pFirstName, 
  225.                     email : pEmail, 
  226.                     telNo : pTelNo 
  227.                 }; 
  228.                 $("#gridTable").jqGrid("setRowData", data.contact.id, dataRow, {color:"#FF0000"}); 
  229.                  
  230.                 alert("联系人信息更新成功!"); 
  231.                  
  232.                 consoleDlg.dialog("close"); 
  233.                  
  234.             } else
  235.                 alert("修改操作失败!"); 
  236.             } 
  237.         } 
  238.     }); 
  239. }; 
  240. var deleteContact = function() { 
  241.     var consoleDlg = $("#consoleDlg"); 
  242.      
  243.     var pId = $.trim(consoleDlg.find("#selectId").val()); 
  244.     var params = { 
  245.         "contact.id" : pId 
  246.     }; 
  247.     var actionUrl = "deleteContact.action"
  248.     $.ajax({ 
  249.         url : actionUrl, 
  250.         data : params, 
  251.         dataType : "json"
  252.         cache : false
  253.         error : function(textStatus, errorThrown) { 
  254.             alert("系统ajax交互错误: " + textStatus); 
  255.         }, 
  256.         success : function(data, textStatus) { 
  257.             if (data.ajaxResult == "success") { 
  258.                 $("#gridTable").jqGrid("delRowData", pId); 
  259.                  
  260.                 consoleDlg.dialog("close"); 
  261.                 alert("联系人删除成功!"); 
  262.             } else
  263.                 alert("删除操作失败!"); 
  264.             } 
  265.         } 
  266.     }); 
  267. }; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值