1
votes

I have a Kendo Grid where I am filtering one of the columns with a MultiSelect control. When I click the "Filter" button it sends [object Object] to the server as the filter value. How can I fix it so it sends the values of the selected item(s). Note, I am server filtering the grid not the multi select control.

Initialization of the multiselect

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");

Here is the JSON that Kendo is sending to the server. Notice there are two object Object items because I selected two items in the filter.

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

If you want to see an example of what multiselect filtering looks like in a grid, you can see this jsbin http://jsbin.com/upEPEqU/3/edit

1

1 Answers

1
votes

To change this you need to set the valuePrimitive option to true.