0

インライン編集用のオートコンプリート設定の列があります。問題ありません。問題は、オートコンプリートに設定が必要な基になるIDがあることです。私の考えは、グリッドに非表示の列を置き、オートコンプリートのselectコールバックを使用してIDを設定することでした。コールバックではすべて良さそうです。ただし、行を保存するときは、列は空です。行データの設定を解除するア​​イデアはありますか?

関連するコードは次のとおりです。

{ name: 'fieldName', label: 'fieldLabel', index: 'fielindex', width: 300,
  sortable: true, editable: true, edittype : 'custom',                          
  editoptions: {
     custom_element : someAutoComplete_element,
     custom_value   : someAutoComplete_value
  }
},
{ name:'someID', index:'someID', width: 70, hidden: true, editable: true,
  editrules: {edithidden:false} 
},

function someAutoComplete_value(elem, op, value) {  
    if (op == "set") {
        $(elem).val(value);
      }
      return $(elem).val();
}


function someAutoComplete_element,(value, options) {
    var $ac = $('<input type="text"/>');
    $ac.autocomplete( {
        source: function(request, response) {
            $.ajax({
                  // Code to deal with fetching the autocomplete
                  });
               },
        select: function(event, ui) {
               var newId = ui.item.obj.id;

               var rowId = jQuery('#myTable').jqGrid('getGridParam','selrow');
               if (rowId) {
                  var rowData = jQuery('#myTable').getRowData(rowId);
                  rowData['someID'] = newId;
               }
             }
           }
         )
return $ac;
}

ありがとう、スコット

4

1 に答える 1

0

jqGrid setCellは、文字通りセルを指定された値に設定します。指定された値がHTMLでない場合、行を保存しようとすると、データが正しく取得されません。setCellDataのようなメソッドがこれを行うことを期待していました。代わりに、これは私の問題を解決するために私がしたことです。結局のところ、私がしているのは、選択した文字列のIDを記憶することだけです。これにより、保存時にサーバー側で正しく保持できるようになります。

var newId = ui.item.obj.id;                  
var rowId = jQuery('#myTable').jqGrid('getGridParam','selrow');

if (rowId) {                      
   var rowData = jQuery('#myTable').getRowData(rowId);                      
   var newCellHTML = $(rowData['utteranceID']).attr("value", newId).get(0).outerHTML;                      
   $("#myTable").setCell(rowId, 'myColumnName',  newCellHTML);
}

これは本当にハックのように感じます私は何かが欠けていますか?

スコット

于 2012-08-17T15:38:38.667 に答える