2013-04-17 15 views
7

今、私は剣道を使ってWebアプリケーションを開発することを学んでいます。剣道の組み込み編集ウィンドウの代わりにkedoWindowを使ってグリッドデータを掘り下げようとすると、私は知らなかったどのようにリモートに要求を送信するには、サーブので、私はthis pageで公式APIドキュメントで答えを見つけることを試みるが、新しい問題は次のコードとして、ショーを発生している:それは説明のための例です剣道データソースの 'options'パラメータ

<script> 
    var dataSource = new kendo.data.DataSource({ 
     transport: { 
      read : function (options) { 
       /* implementation omitted for brevity */ 
      }, 
      update: function (options) { 
       // make JSONP request to http://demos.kendoui.com/service/products/update 

       $.ajax({ 
        url  : "http://demos.kendoui.com/service/products/update", 
        dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests 
        // send the updated data items as the "models" service parameter encoded in JSON 
        data : { 
         models: kendo.stringify(options.data.models) 
        }, 
        success : function (result) { 
         // notify the data source that the request succeeded 

         options.success(result); 
        }, 
        error : function (result) { 
         // notify the data source that the request failed 
         options.error(result); 
        } 
       }); 
      } 
     }, 
     batch : true, 
     schema : { 
      model: { id: "ProductID" } 
     } 
    }); 

    dataSource.fetch(function() { 
     var product = dataSource.at(0); 
     product.set("UnitPrice", 20); 
     dataSource.sync(); makes request to http://demos.kendoui.com/service/products/update 
    }); 
</script> 

リモートサービスへのHTTPリクエストを作成する関数としてupdateを指定する方法

私の問題は、 'options'というパラメータが読み取りと更新機能に渡されました。 私が見つけた唯一の手がかりは、transport.parametermap関数のパラメータですが、それらの間に特定の関係があるかどうかわからないので、誰かが私のために説明することを願っています

答えて

5

optionsパラメータは既に発見したものです。 KendoUIでは、データソースクラスのデータアクセスメソッドの設定の代わりに関数を指定しましょう。

関数を指定すると、kendoUIはどのようにデータのロードが終了したかを知ることができますか?それはできませんでした。 このオプション変数は、あなたの関数に渡されます(実際には、dfhajkfhdのように、すべての名前を持つことができます)。kendoUIにあなたの進捗状況を知らせるために呼び出すことができます。 これは成功エラーあなたが呼び出すことができる方法です。

あなたがkendo-docsからコピーしたあなたのコメントは、これを正確に示しています。

あなたは何か違う質問をしましたか?

+0

実感謝を使用するコードです。はい、私はリンクされたドキュメントから答えを見つけました。 – Beicai

1

は本当にこの質問に答えて、私は疑問にリンク剣道、ドキュメントの下から答えを見つけた

にしようとしているものを感謝しています。

  1. は、新しい「データソース」オブジェクトを作成し、その中で読ん と更新の輸送を定義
  2. のdataSourceは準備ができて、私はで をUDPATEするために必要なデータ項目を取得するために のdataSourceの「getメソッドを使用する場合id。
  3. UDPATEデータは「セット」メソッドを使用して、最後のステップは、データベース フォローにデータを同期さ

「同期」の方法により提出し、私は答えを

var updateDataSource = new kendo.data.DataSource({ 
    type: "odata", 
    transport: { 
     read: { 
      url: "/api/odata/PEMEP/TaskInformations/?" 
     }, 
     update: { 
      url: "/api/odata/PEMEP/TaskInformations/?", 
      type: "PUT", 
      dataType: "json", 
     }, 
    }, 
    schema: { 
     model: { 
      id: "_id" 
     } 
    }, 
    sync: function() { // close edit window when update request finished 

     $("#window").data("kendoWindow").close(); 
    }, 
    error: function(e) { 
     console.log(e.status); 
    } 
}); 
updateDataSource.fetch(function() { 

    var task = updateDataSource.get(id); // get dataitem by id 

    task.set("status", status); // set new values 
    task.set("retreatReason", retreatReason); 

    updateDataSource.sync(); //submit the change 
}); 
関連する問題