2012-01-11 17 views
0

Oleg - あなたはここですか?私は私がするために休閑コードを使用するグリッドをロードした後、今興味深い:興味深いsearchOptionsをオーバーライドせずにjqgridでjquery autoCompleteを実装する

var columnModel = [{ name: 'ID', index: 'ID', sortable: true,searchoptions: { sopt: ['gt']}}, 
{ name: 'FirstName', index: 'FirstName', sortable: true, searchoptions: { sopt: ['cn']} }, 
{ name: 'LastName', index: 'LastName', sortable: true ,searchoptions: { sopt: ['ge']}} 
]; 

私はjqGridを使用しています、私はこのようなタイプ

に応じcolModel私searchoptionの中に設定されましたグリッドの検索ボックスにauticompleteを追加します。

for (var i = 0; i < columnModel.length; i++) { 
    var nameCol = columnModel[i].name; 
    myGrid.jqGrid('setColProp', nameCol, 
      { 
       searchoptions: { 
        dataInit: function (elem) { 
         $(elem).autocomplete({ 
          source: function (request, response) { 
           autoFillSearch(request, response, $(elem).attr('name')); 
          }, 
          minLength: 1 
         }); 
        } 
       } 
      }); 
} 
myGrid.jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true }); 

autoFillSearch機能は、このようなものです:

function autoFillSearch(request, response, columnToSearchName) { 
    var paramters = { 
     colName: columnToSearchName, 
     prefixText: request.term 
    }; 
    $.ajax({ 
     url: './ViewNQueryData.asmx/AutoCompleteSearch', 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify(paramters), 
     success: function (data) { 
      response($.each(data.d, function (index, value) { 
       return { 
        label: value, 
        value: index 
       } 
      })); 
     } 
    }); 
} 

問題は新しいcolModelsが二度目に作成された検索オプションを持っていると私は彼らが持っていたい私の具体的な「SOPT」を持っていけないということです....

私はそこに変化のいずれかの方法2回目のsearchoptionで、元のcolMadelから "sopt"オプションを取得しますか?

ありがとうございます。

答えて

0

このための答えがある:

for (var i = 0; i < columnModel.length; i++) { 
    var nameCol = columnModel[i].name; 
    var soptOption = columnModel[i].searchoptions.sopt; 
    myGrid.jqGrid('setColProp', nameCol, 
       { 
        searchoptions: { 
         sopt: soptOption, 
         dataInit: function (elem) { 
          $(elem).autocomplete({ 
           source: function (request, response) { 
            autoFillSearch(request, response, $(elem).attr('name')); 
           }, 
           minLength: 1 
          }); 
         } 
        } 
       }); 
} 
関連する問題