1

文字列の配列をhandsontables列にオートコンプリートとして割り当てようとしています。AJAX 呼び出しからこの JSON データを取得しています。

に割り当てることができませんsource:。コードに従ってください。

    var loadBU = function(data) {          
                $.ajax({
                 url: "/EditInitiatives.svc/GetBUData",
                 data: "clientId=" + $value.val(),
                 type: "GET",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function (res) {                      
                     data(res);
                 },
                 error: function (error) {
                     alert("Error: " + error.responseText);
                 }
                });    
              };    

    $("#example2").handsontable({
        data: getCarData(),
        startRows: 7,
        startCols: 4,
        columns: [
                  {  data:'BusinessUnit',
                     type:'autocomplete',
                     source:loadBU(function(output){                            
                               var results = output.d                         
                               var arr = [], item;
                               for (var i = 0, len = results.length; i < len; i++) {
                                    item = results[i];
                                    arr.push([[item]]);
                                }
                                return arr;
                            }),      
                        strict: true
                     },
               ]
       });

本来はそういうものなのだろうEX: source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"],

ここに画像の説明を入力

配列をソースに割り当てる方法がわかりません。

参照

4

2 に答える 2

0

あなたの「帰りのarr;」「source:」に戻らず、「loadBU」関数に戻ります。

たとえば、次のことができます。

             success: function (res) {                      
                 var arr = data(res);
             },

これが割り当てられていない理由です。

前に Ajax 呼び出し$("#example2").handsontable({を行い、それを someVariable に保存してから、source: someVariable

Ajax 呼び出しが返す内容によっては、いくつかの操作が必要になる場合もあります。たとえば、ループして配列にロードする必要がありました。

function AppendToArray(ajaxValues, theArray) {
    for (var i = 0; i < ajaxValues.length; i++) {
        theArray.push('' + ajaxValues[i].Text + '');
    }
}

これが役立つことを願っています

于 2013-06-27T21:52:38.900 に答える