【问题标题】:Binding data to kendo dropdownlist将数据绑定到剑道下拉列表
【发布时间】:2016-09-28 21:24:02
【问题描述】:

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

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

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

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

下面我有 3 种方法,我尝试基于 google 搜索对数据列字段进行编码,这些方法导致了这个论坛上非常古老的主题,这就是为什么我希望有一种简单的方法。前两个不起作用,但第三个(硬编码)确实起作用。

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
        }
    }

【问题讨论】:

  • 场景1不行,因为需要在successsuccess回调中调用options.success(...your data...)docs.telerik.com/kendo-ui/framework/datasource/crud#read-local
  • @dimodi 好的,我会试试的,我不知道如何将数据传回下拉列表
  • @dimodi 这是我的问题的解决方案。如果您将其发布为答案,我会接受它

标签: javascript html ajax kendo-ui kendo-grid


【解决方案1】:

场景一不行,因为需要在$.ajax()的成功回调中调用options.success(...your data...)

http://docs.telerik.com/kendo-ui/framework/datasource/crud#read-loc‌​al

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多