在JQGrid中 - 如何以编程方式在编辑对话框中的字段中设置值

时间:2015-09-17 05:32:47

标签: jqgrid

我在我的Web应用程序中使用JQGrid和Spring + Hibernate。我创建了一个功能,其中JQGrid打开一个编辑对话框,用于编辑选定的行,其中我创建了一个自定义按钮。当用户单击此自定义按钮时,将打开一个对话框,用户从该对话框中选择一行。当用户点击'确定'控制移回JQGrid编辑对话框。 我只想在JQgrid编辑对话框的字段中复制对话框中的选定值。我能够从全局javascript变量中的对话框中获取值,但无法在JQGrid编辑对话框字段中设置它。请帮我这样做。

我的javascript文件中的相关代码粘贴在下面:

     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>';
         }
     },

1 个答案:

答案 0 :(得分:0)

我已解决了以下代码

的问题

只需将以下代码放入“确定”按钮功能

即可

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

此处acccode是colModel字段,selAcccode是全局javascript变量,其中值放在编辑表单字段中。