2015-09-17 77 views
0

我在我的web應用程序中使用Spring + Hibernate的JQGrid。我創建了一個功能,其中JQGrid打開編輯對話框來編輯選定的行,其中我創建了一個自定義按鈕。當用戶點擊這個自定義按鈕時,會打開一個對話框,用戶從這個對話框中選擇一行。當用戶單擊「確定」控件時,會返回到「JQGrid編輯」對話框。 我只想從對話框中選擇一個字段的值,並將其複製到JQgrid編輯對話框的字段中。我能夠從全局JavaScript變量中的對話框中獲取值,但無法在JQGrid編輯對話框字段中設置它。請幫我做這件事。從我的JavaScript文件在JQGrid中 - 如何在編輯對話框中的編輯對話框中設置值

培訓相關的代碼粘貼下面:

 function JQDialog(title, contentUrl, params) { 
     var dialog1 = $("#codesdlg").dialog(
     { 
      autoOpen: false, 
      modal: true, 
      title: title, 
      zIndex: 1000, 
      close: function (e, ui) { dialog1.remove(); }, 
      buttons: { "Ok": function() 
       { 
        alert("Selected A/c Code: " + selAccode + ' - '+selAcDescr); 
        $('#TblGrid_list').$('#tr_acccode').val(selAccode); 
        dialog1.dialog("close"); } 
      } 
     }); 

     dialog1.load(contentUrl, function() { 
      dialog1.dialog('open'); 
     }); 

//    dialog1.load(contentUrl).dialog('open'); 

    }; 


    $("#list").jqGrid('navGrid','#pager',{edit:true,add:true,del:true,search:true,refresh:false}, 
      { 
       recreateForm: true, dataheight: 375, width: 400, height: 450, zIndex:75, 
       beforeShowForm: function(form) {$('#tr_ccode',form).hide(); 

       $('<a href="#">Select<span class="ui-icon ui-icon-search"></span></a>') 
       .click(function(rowid, iRow, iCol, cellValue, e) { 
        JQDialog("Test Dialog","../acctmstmgmt/opendlg",rowid); 
//     var rowData = jQuery(this).getRowData(rowid); 
//     rowData.acccode = selAccode; 
//     $('#list').jqGrid('setRowData', rowid, rowData); 
//     $("#list").jqGrid("setCell", rowid, "acccode", selAccode); 
//     alert(selAccode); 
//     $('#trv_acccode').val(selAccode); 
//     window.open("../acctmstmgmt/opendlg", 'Dialog', 'width=700,height=300', top=500, left=500); 


       }).addClass("fm-button ui-state-default ui-corner-all fm-button-icon-left") 
        .appendTo("#tr_acccode"); 

       } 
      }, 
      { 
       recreateForm: true, dataheight: 375, width: 400, height: 450, zIndex:75, 
       beforeShowForm: function(form) {$('#tr_ccode',form).show(); 

       $('<a href="#">Select<span class="ui-icon ui-icon-search"></span></a>') 
       .click(function() { 
        alert('Clicked'); 
       }).addClass("fm-button ui-state-default ui-corner-all fm-button-icon-left") 
        .appendTo("#tr_acccode"); 

       } 
      }, 
      { 
      }, 
      { // search 
       sopt:['cn', 'eq', 'ne', 'lt', 'gt', 'bw', 'ew'], 
       closeOnEscape: true, 
       multipleSearch: true, 
       closeAfterSearch: true 
      }); 
}); 

$.jgrid.edit = { 
    addCaption: "Add Codes Master", 
    editCaption: "Edit Codes Master", 
    bSubmit: "Submit", 
    bCancel: "Cancel", 
    bClose: "Close", 
    bYes : "Yes", 
    bNo : "No", 
    bExit : "Cancel", 
    closeAfterAdd:true, 
    closeAfterEdit:true, 
    reloadAfterSubmit:true, 
    modal:true, 
    msg: { 
      required: "is mandatory or required", 
      number: "is a number field. Enter a valid number", 
      minValue: "should not be less than ", 
      maxValue: "should not be more than " 
      }, 
    errorTextFormat: function (response) { 
     if (response.status !== 200) { 
      return '<div style="overflow-y: scroll;">'+ 
       "Error encountered while processing. Please check the accuracy of data entered.-" + response.status + " "+response.responseText 
       + '</div>'; 
     } 
    }, 

回答

0

我已經解決了這個問題,用下面的代碼

只是放在下面的「確定」按鈕的功能代碼

$( '#acccode')VAL(selAccode)。

這裏acccode是colModel字段,而selAcccode是全局JavaScript變量,其值來自編輯表單字段。

相關問題