簡體   English   中英

將數據綁定到劍道下拉列表

[英]Binding data to kendo dropdownlist

我有一個Kendo網格,其中的一列具有一個自定義過濾器模板,該模板是一個下拉列表。 我無法將數據填充到下拉列表中。

我想要的是使該選項成為該列中所有記錄的所有唯一值。

附帶的問題:有沒有更簡單的方法用列的唯一值填充下拉列表? 由於這是下拉菜單中最合乎邏輯的內容,我希望可能會有一些內置的方式?

我正在嘗試做的是讓它調用返回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不起作用,因為您需要在$.ajax()的成功回調中調用options.success(...your data...) $.ajax()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM