如何更改“editurl”并提交使用jqGrid中的编辑窗体中的自定义按钮“编辑窗体”?

问题描述:

我正在使用jqGrid。如何更改“editurl”并提交使用jqGrid中的编辑窗体中的自定义按钮“编辑窗体”?

这里是我的代码:

$("#list").jqGrid({ 
     url:'urlone.php', 
     editurl:'somepage.php', 
     datatype: 'json', 
     mtype: 'POST', 
     colNames:['ID','Name'], 
     colModel :[ 
      {name:'cid', index:'cid'}, 
      {name:'name', index:'name'} 
     ], 
     "postData":{"oper":"grid"}, 
     "prmNames":{"query":"grid"}, 
     pager: '#pager'   
     }).navGrid('#pager',  {"edit":true,"add":true,"del":false,"search":false,"refresh":true,"view":false,edittitle: "Edit Candidate",addtitle: "Add Candidate",deltitle: "Delete Candidates",searchtitle: "Search Candidates",refreshtitle: "Refresh Data",viewtitle: "View Candidate",edittext: "Edit",addtext: "Add",deltext: "Delete",searchtext: "Search",refreshtext: "Refresh",viewtext: "View"}, 
     prmEdit,prmAdd); 


    prmEdit = { 
       "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterEdit":true,viewPagerButtons:false,"editCaption":"Update Candidate",reloadAfterSubmit:true,recreateForm:true 
      ,beforeShowForm: function($form) { 
        $form.parent().find('.EditButton').prepend('<a href="javascript:void(0)" id="qButton" class="fm-button ui-state-default ui-corner-all fm-button-icon-left">Update &amp; Qualify<span class="ui-icon ui-icon-flag"></span></a>'); 
      },beforeSubmit : function(postdata, formid){ 
        $.ajaxFileUpload({ 
         url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
         secureuri:false, 
         fileElementId:'resume', 
         dataType: 'json', 
         success: function (data, status) { 
          if(typeof(data.error) != 'undefined') 
          { 
           if(data.error != '') 
           { 
            alert(data.error); 
           }else{ 
            alert(data.msg); 
           } 
          } 
          return[true,"Resume successfuly uploaded"]; 
         }, 
         error: function (data, status, e) 
         { 
          return[false,e]; 
         } 
        }); 
        return[true,"Resume not uploaded"]; 
      }, afterComplete : function (response, postdata, formid) { 
        var txt = '{"responseT":['+response.responseText+']}'; 
        var obj = eval ("(" + txt + ")"); 
        if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!"; 
        else msgStr = obj.responseT[0].msg; 
        openmsgbox(obj.responseT[0].err,msgStr); 
      } 
    }; 

    prmAdd = { "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterAdd":true,viewPagerButtons:false,"addCaption":"Add Candidate","bSubmit":"Add",reloadAfterSubmit:true,recreateForm:true, beforeSubmit : function(postdata, formid){ 
        $.ajaxFileUpload({ 
         url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
         secureuri:false, 
         fileElementId:'resume', 
         dataType: 'json', 
         success: function (data, status) { 
          if(typeof(data.error) != 'undefined') 
          { 
           if(data.error != '') 
           { 
            alert(data.error); 
           }else{ 
            alert(data.msg); 
           } 
          } 
          return[true,"Resume successfuly uploaded"]; 
         }, 
         error: function (data, status, e) 
         { 
          return[false,e]; 
         } 
        }); 
        return[true,"Resume not uploaded"]; 
      }, afterComplete : function (response, postdata, formid) { 
        var txt = '{"responseT":['+response.responseText+']}'; 
        var obj = eval ("(" + txt + ")"); 
        if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!"; 
        else msgStr = obj.responseT[0].msg; 
        openmsgbox(obj.responseT[0].err,msgStr); 
      } 
    }; 

我加入了一个名为“更新&资格”的编辑表单自定义按钮。现在当用户点击默认的提交按钮时,表单应该使用现有的editurl提交,但是当点击“更新&合格”按钮时,“editurl”的值将更改为“somepage.php?do = qualify”,表单应该被提交...但我无法弄清楚如何这个..任何人都可以帮助我?

+0

@oleg你是最有资格的人谁能够正确地回答这个问题..请帮助我,我一定要在两天内提交项目.. – 2012-02-14 18:06:36

+0

如果您需要某些商业项目的开发支持,您可以通过以下电子邮件与我联系:[email protected] – Oleg 2012-02-15 10:29:01

转发来自新的按钮,点击原来的“提交”按钮,您可以附加beforeShowForm的代码下面几行

$("#qButton").click(function() { 
    $("#sData").click(); 
}); 

此外,您可以设置click处理程序和测试内部的任何变量该变量用于区分从新提交按钮与从原始“提交”按钮提交的提交。

onclickSubmit回调可以更改url属性:

onclickSubmit: function (params, posdata) { 
    // first test something and then change the URL with 
    params.url = "newUrl"; 
}