2012-02-08 7 views
2

jQuery AJAXについてよく知っており、いつも使っています。剣道UIは、jQueryとその「AJAXの使用」の上に構築されています。 HttpHandlerへ&渡すパラメータとのインタフェースはjQueryのを使用して簡単です、あなたは、単に次のようにします。私は見つけることを試みている
:MY ISSUE
Kendo UIを使用してHttpHandlerにパラメータを渡すにはどうすればよいですか?

$.ajax({ 
    complete: self.onComplete, 
    data: { SiteId: 777 }, // <--- this gets appended to the post 
    dataType: 'json', 
    error: self.onError, 
    success: self.onSuccess, 
    url: self.url 
}); 

:jQueryのAJAXを使用した

剣道相談はdata(上記)と同等です。

  • グリッドパラメータはのHttpHandlerに供給されていないのHttpHandler
  • から私に戻って渡されるデータを取り込むないが

剣道CODEがどのように見える(下記参照):

<script type="text/javascript"> 

     $(document).ready(function() { 

      var dataSource = new kendo.data.DataSource({ 
       transport: 
        { 
         read: { 
          url: "Handlers/Attempt1Synch.ashx", 
          dataType: "json", 
          contentType: "application/json; charset=utf-8", 
          type: "POST", 
          data: { SiteId: 777 } 
         } 
//      parameterMap: function (data, operation) { 
//       return JSON.stringify(data); 
//      } 
        }, 
       schema: { data: "People" } 
      }); 

      $("#grid").kendoGrid({ 
       height: 360, 
       width: 500, 
       dataSource: dataSource, 
       groupable: true, 
       scrollable: true, 
       sortable: true, 
       pageable: true, 
       columns: 
       [{ 
        field: "Id", 
        width: 0 
       }, 
       { 
        field: "FirstName", 
        width: 90, 
        title: "First Name" 
       }, 
       { 
        field: "LastName", 
        width: 90, 
        title: "Last Name" 
       }, 
       { 
        width: 100, 
        field: "City" 
       }, 
       { 
        field: "Title" 
       }, 
       { 
        field: "BirthDate", 
        title: "Birth Date", 
        template: '#= kendo.toString(BirthDate,"dd MMMM yyyy") #' 
       }, 
       { 
        width: 50, 
        field: "Age" 
       }] 
      }); 
     }); 
    </script> 

    <div id="grid"> 
    </div> 

MY HTTPハンドラは、次のようになります。

public class Attempt1Synch : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     var siteId = Convert.ToInt32(context.Request["SiteId"]); 

     var serializer = new JavaScriptSerializer(); 
     var response = mock(siteId); 

     context.Response.ContentType = "text/json"; 
     context.Response.Write(serializer.Serialize(response)); 
     context.Response.End(); 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

答えて

3

これは以前のビルドの既知の問題であることがわかりました。 The newest release fixes this。以下に示すようにそのように、あなたはFIRST KendoUIの最新バージョンをダウンロードする必要があります。

V1 2011 SP1(バージョン2011.3.1407) - 2012年2月
-

'のODataは、ユーザー定義のパラメータ提出していない' を参照します

しかし、も上記のコードに問題があります。コードPOSTコマンドを省略してください。

新しいデータソースは、LIKEになるはずです:
のみDataSourceオブジェクトが正しくありません。新しいものはこのように見えるはずです -

var dataSource = new kendo.data.DataSource({     
    transport:      
    {       
     read: 
     { 
      url: "Handlers/Attempt1Synch.ashx", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      data: { SiteId: 777 } 
     }, 
     schema: { data: "People" }    
}); 
+0

consiseの回答ありがとうございます。あなたは剣道のUIに関するブログやチュートリアルをお勧めしますか?私は、Telerikのドキュメンテーションとサンプルが欠けていることがわかります。 –

+0

いいえ、申し訳ありませんが、「試行錯誤」を使用してこの問題を解決しなくてはなりませんでした。そして、はい、Telerikのドキュメンテーションサイトは吸います。 –

関連する問題