2016-11-15 17 views
1

をリセットします。私はこのような剣道グリッドの列を持っている剣道グリッド列

$("#lstCategory").kendoGrid({ 
     dataSource: { 
      data: info, 
      autoSync: true, 
      schema: { 
       model: { 
        fields: { 
         category: { editable: false, type: "string" }, 
         subCategory: { editable: false, type: "string" } 
        } 
       } 
      }, 
      pageSize: 7, 
      group: { 
       field: "category", 
       aggregates: [ 
        { field: "category", aggregate: "count" } 
       ] 
      } 
     }, 
     sortable: true, 
     scrollable: false, 
     pageable: true, 
     editable: true, 
     columns: [ 
      { field: "category", title: "Categoría", aggregates: ["count"], groupFooterTemplate: "Total: #=count#" }, 
      { field: "subCategory", title: "Subcategoria" }, 
      { command: "destroy", title: "", width: "150px" } 

     ] 
    }); 
} 

があり、私はポストアクションのためのフィールドを追加します。

$("#lstCategory").empty(); // this one dissapear kendo grid 
    $('#lstCategory').data('kendoGrid').refresh(); 
    $('#lstCategory').data().kendoGrid.destroy(); 

それらのどれもが問題になることができるか、ポストの後に私の剣道をフラッシュしていない:問題は、私はそれをフラッシュし、私は、次のコマンドを使用しようとする別の値を挿入するためにポストした後に、このグリッドをリセットしたいのですか?

更新:ドレッド海賊の答えとして

試してみてください。

ポストアクションの後、私はこれを送信します

var grid = $("#lstCategory").getKendoGrid(); 
        var info = refeshInfoFromServer(); 
        grid.dataSource.data(info); 

function refeshInfoFromServer() { 
    return $("#lstCategory").data("kendoGrid").dataSource.read(); 
} 

動作しているように見えますが、私のページがロードにはまり込みます。 Google Chrome Inspector返信

kendo.all.min.js:11 Uncaught TypeError: e.slice is not a function

+0

スライスエラーがスローされます。どのプロパティデータが来るのかを定義する必要があります。指定しない場合は、デフォルト値で動作します。 http://docs.telerik.com/kendo-ui/api/javascript/data/datasource – Ademar

+0

これは私が示唆したことではありません。サーバーから情報を再入力する必要がありますが、初めてでした*。 read()メソッドがPromise * not *データを返すので、info = grid.dataSource.read()という方法はありません。それで、あなたが今やっていることは、データソースのデータをPromiseに設定することです。リモートでも動作しないので、スライスエラーが発生します。なぜなら、スライスがPromiseで呼び出されているからです正当なデータの配列の代わりにそこに押し込まれた。最初に情報がどのように埋め込まれたかを示す必要があります。 –

答えて

1

投稿後にサーバーからグリッドのデータを再読み込みしますか?

grid.refresh()はグリッドを現在のdataSourceにのみ再バインドしますが、基になるdataSourceを強制的にサーバーから読み取らせることはありません。これが唯一のヒットする、

$("#lstCategory").data("kendoGrid").dataSource.read(); 

しかし:あなたは再び正常にサーバーをヒットするグリッドを強制的に何をしたいのかhttp://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-refresh

はつまり、基礎となるデータソースのread()メソッド(http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-read)を、使用することですサーバーの場合、dataSourceがリモートの読み取りエンドポイントにバインドされている場合は、ローカル配列を再読み込みするだけです...あなたのdataSourceのデータは、おそらくすでに取り出された配列である "info"という神秘的な変数から来ています?

この場合、情報配列を強制的にリフレッシュする必要があります(最初にもう一度入力した内容を再度実行する)。グリッドのdataSourceを新しいデータで更新した後、グリッドを再バインドします。このような

何か:

// Do Post or whatever... 
var grid = $("#lstCategory").getKendoGrid(); 
info = refeshInfoFromServer(); 
grid.dataSource.data(info); 
//grid.refresh(); // NOTE: not necessary as .data(info) will automatically do rebind to the grid it belongs to.automatically do this. 

が偽のデータとデモの作業:スキーマは、サーバーまたはオブジェクトの指定されたリストから取得されobjectに一致しない場合http://dojo.telerik.com/@Stephen/aGAQo

+0

私はあなたの答えとして試してみますが、私は問題がある、私は私の質問にそれを投稿、あなたはそれを確認できますか? –

+0

私はそれが仕事を得る、私は自分のデータに基づいて回答を投稿 –