2016-02-27 30 views
5

Controllerサービスを使用してjsGridをロードするのは本当に苦労しています。それを正しく行うことができません。MVSでController/WebServiceを呼び出してjsGridをロードする

jsGridサイトのデモからサンプルコードを試してみましたが、これも動作しませんでした!this.data.lengthでエラーが発生するか、グリッドがまったく読み込まれません。

以下のコードを使用するたびにデータが取得されません。

誰でも手伝ってください。

$(element).jsGrid({ 
    height: 300, 
    width: "100%", 
    filtering: true, 
    sorting: true, 
    paging: true, 
    autoload: true, 
    pageLoading: true, 

    controller: { 
     loadData: function (filter) { 
      $.ajax({ 
       type: "GET", 
       url: "../Common/GetData", 
       data: filter, 
       dataType: "JSON" 
      }); 
     } 
    }, 
    pageSize: 10, 
    pageButtonCount: 5, 
    pageIndex: 1, 

    noDataContent: "No Record Found", 
    loadIndication: true, 
    loadIndicationDelay: 500, 
    loadMessage: "Please, wait...", 
    loadShading: true, 

    fields: [ 
     { name: "Name", type: "textarea", width: 150 }, 
     { name: "Age", type: "number", width: 50 }, 
     { name: "Address", type: "text", width: 200 }, 
     { name: "Country", type: "select" }, 
     { 
      name: "", type: "text", width: 50, sorting: false, filtering: false, 
      itemTemplate: function (value) { 
       return '<div class="edit-container"><a class="edit-custom-field-link">Edit</a><div class="sort-icon-container"><div class="up-arrow-icon"></div><div class="down-arrow-icon"></div></div></div>'; 
      } 
     } 
     //{ name: "Married", type: "checkbox", title: "Is Married", sorting: false } 
     //,{ type: "control" } 
    ] 
}); 
+1

ドン」 loadDataが呼び出されない場合、自動ロード:trueを返します。 – mauronet

答えて

6

データをロードする、

loadData: function(filter) { 

    return $.ajax({ 
     type: "GET", 
     url: "../Common/GetData", 
     data: filter, 
     dataType: "JSON" 
    }) 

} 

return $.ajax({})は約束を返すんがあなたが約束を使用する必要があります。

これはjsGridをロードしています方法です。はい、ありがとうございます!私はあまりにもJSGridに問題を抱えていた

  loadData: function() { 
      var d = $.Deferred(); 

      $.ajax({ 
       type: 'GET', 
       url: '../Common/GetData', 
       dataType: "json", 
       success: function (data) { 
        d.resolve(data); 
       }, 
       error: function(e) { 
        alert("error: " + e.responseText); 
       } 
      }); 

      return d.promise(); 
     } 
+0

pageLoading = trueオプションを使用してjsGridをロードすることは可能ですか?loadData:function(filter){ return {data: (サービスコールを使用したい)、itemsCount :(サービスコールobjecを使用するt)}。データオブジェクト –

+2

でサービスコールをバインドする方法がわからないこの作業は実際には行われましたか?私はグリッドを読み込むことができません私は私のJSONが要求され、返送されるのを見ることができ、私のすべてのイベントにコンソールログを記録しているのにも関わらず、私はそれをデバッグする方法を考えることができないので、非常にイライラしています。基になるJQueryコードをステップ実行すると、それは私には分かりません。 AAAARRRRRGGH! –

+0

同様のコードはここにあります:http://stackoverflow.com/questions/35907482/data-not-populating-the-table-created-using-jsgrid –

0

。私は結果が戻って来るのを見ることができますが、私のjsGridを吐いまま

`

loadData: function(filter) { 
    console.log("LoadData called....") 
    var d = $.Deferred(); 
    $.ajax({ 
     type: "GET", 
     url: "/secure/msgitems", 
     data: filter 
    }).done(function(response) { 
     console.log( response); 
     d.resolve(response); 
     return; 
    }); 
return d.promise(); 
}, 
}, 

`

:私は、次のスニペットを(一部は示唆されているとして)使用していました。これは、サーバーは、次の形式でデータを返す必要があり判明:

{
data: [items], itemsCount: amountOfItems }

開発者は、このトピックについて説明しますのはここです:https://github.com/tabalinas/jsgrid/issues/35

動作しているようです... FWIW

4

:loaddataのためにこのコードを試してみてください約束を返すために

関連する問題