2016-09-28 11 views
0

私は、ドロップダウンリストであるカスタムフィルタテンプレートを持つ剣道グリッドを持っています。ドロップダウンリストにデータを入力する際に​​問題が発生しています。剣道ドロップダウンリストにデータをバインドする

私が望むのは、オプションをその列のすべてのレコードの一意の値にすることです。

サイド質問:列の一意の値でドロップダウンリストを簡単に埋め込む方法はありますか?これがドロップダウンリストの中で最も論理的な内容なので、いくつかの方法で組み込むことができますか?

私がしようとしているのは、オプションを指定してJSONを返すサービスを呼び出させることです。

以下私はこのフォーラムで非常に古いトピックにつながったGoogle検索に基づいてデータ列フィールドをコード化しようとした3つの方法を持っています。最初の2つは機能しませんが、3番目の(ハードコーディングは)機能します。

1)この呼び出しはサーバーにヒットし、JSONを返しますが、ドロップダウンには入力しません。

{ 
      "field": "location_name", 
      "title": "Location", 
      "filterable": { 
       cell: { 
        template: function (args) { 
         args.element.kendoDropDownList({ 
         dataTextField: "optionText", 
         dataValueField: "optionValue", 
         valuePrimitive: true, 
         dataSource: { 
          transport: { 
           read: 
            function(options) { 
             $.ajax({ 
              type: "GET", 
              url: "/Patrol/Report.aspx/GetOptions", 
              data: "d", 
              contentType: "application/json; charset=utf-8", 
              dataType: "json", 
              success: function (msg) { 
               alert(msg.d); 
               return msg; //tried with and without the return 
              } 
             }); 
            } 
          } 
         } 
        }); 
       }, 
       showOperators: false 
      } 
     } 

2)この呼び出しは、データソースのデータを符号化するすべての

 { 
      "field": "location_name", 
      "title": "Location", 
      "filterable": { 
       cell: { 
        template: function (args) { 
         args.element.kendoDropDownList({ 
         dataTextField: "optionText", 
         dataValueField: "optionValue", 
         valuePrimitive: true, 
         dataSource: { 
          transport: { 
           read: { 
            dataType: "jsonp", 
            url: "/Patrol/Report.aspx/GetOptions", 
           } 
          } 
         } 
        }); 
       }, 
       showOperators: false 
      } 
     } 

3)ハードでサーバーにヒットしません:これは正しく動作

{ 
     "field": "location_name", 
     "title": "Location", 
     "filterable": { 
      cell: { 
       template: function (args) { 
        args.element.kendoDropDownList({ 
        dataTextField: "optionText", 
        dataValueField: "optionValue", 
        valuePrimitive: true, 
        dataSource: 
         [{"optionText": "HP","optionValue": "HP"}, {"optionText": "Loc2","optionValue": "ID2"}] 
       }); 
      }, 
      showOperators: false 
     } 
    } 
+0

'$ .ajax()'の 'success'コールバックで' options.success(... your data ...) 'を呼び出す必要があるため、シナリオ1は動作しません:http ://docs.telerik.com/kendo-ui/framework/datasource/crud#read-local – dimodi

+0

@dimodi大丈夫です。データをドロップダウンに戻す方法がわかりませんでした –

+1

@dimodiこれはです私の問題の解決策。あなたが回答として投稿した場合、私はそれを受け入れる –

答えて

関連する問題