2016-09-28 118 views
0

我有一个kendo网格,该列中有一个自定义过滤器模板,它是一个下拉列表。我无法将数据填充到下拉列表中。将数据绑定到kendo下拉列表中

我想要的是让选项是该列中所有记录的所有唯一值。

侧面问题:有没有更简单的方法来填充列的唯一值的下拉列表?由于这是放置在下拉列表中最合乎逻辑的内容,我希望可能会有一些内置的方式?

我想要做的是让它调用一个返回JSON指定选项的服务。

下面我有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(...您的数据...)',场景1不起作用。 ://docs.telerik.com/kendo-ui/framework/datasource/crud#read-local – dimodi

+0

@dimodi好的,我会尝试,我不知道如何将数据传回到下拉菜单 –

+1

@dimodi这是解决我的问题。如果您将其作为答案发布,我会接受它 –

回答

相关问题