带有服务器过滤的Kendo Grid发送对象而不是值

时间:2014-06-19 14:32:37

标签: kendo-ui kendo-grid

我有一个Kendo Grid,我使用MultiSelect控件过滤其中一个列。当我点击"过滤"按钮它将[object Object]作为过滤器值发送到服务器。 如何修复它以便发送所选项目的值。注意,我是服务器过滤网格而不是多选控件。

多选的初始化

var regionddl = element.kendoMultiSelect({
            dataTextField: "Value",
            dataValueField: "Value",
            optionLabel: "Select One...",
            dataSource: {
                transport: {
                    read: {
                        data: "",
                        dataFilter: function (data) {

                            var msg = eval('(' + data + ')');
                            if (msg.hasOwnProperty('d'))
                                return msg.d;
                            else
                                return msg;
                        },

                        contentType: "application/json; charset=utf-8",
                        type: "POST",
                        url: "SearchSites.aspx/GetRegions"
                    }
                }
            }
        }).data("kendoMultiSelect");

这是Kendo发送到服务器的JSON。请注意,有两个对象Object项,因为我在过滤器中选择了两个项目。

[{\\\"field\\\":\\\"Region\\\",\\\"operator\\\":\\\"eq\\\",\\\"value\\\":\\\"[object Object],[object Object]\\\"}]

如果你想看一个网格中多重选择过滤的例子,你可以看到这个jsbin http://jsbin.com/upEPEqU/3/edit

1 个答案:

答案 0 :(得分:1)

要更改此设置,您需要将valuePrimitive选项设置为true。