U.P
U.P

Reputation: 7442

Kendo Grid: Filter On Different Property Than Property Column Is Bound To

I want to be able to filter a column based on values from a different column.

I have bound a column to ID property and showing Name (using template). When the user filters/sorts, the values of the bound property (ID) are used. I want to use the values of a different property/column.

I have already figured out a way to handle sort (using compare function for kendo.ui.GridColumnSortable) but cannot find a way to handle filter.

PS: I tried using filterMemberPath and sortMemberPath but they only seem to work for server side filtering/sorting.

Upvotes: 1

Views: 2403

Answers (1)

U.P
U.P

Reputation: 7442

Talked to Kendo support and found a couple of ways to handle this issue: if using Kendo version 2016.3 or above, the filter event can be used

filterable: true,
filter: function(e) {
          if (e.filter.filters[0].field == "age") {
           e.preventDefault();
            this.dataSource.filter({ field: "name", operator: "startswith", value: "Jane" });
          }

but if using kendo version 2016.1 or below, the following approach works which uses filterMenuInit and binds the click event on filter button

filterable: true,
filterMenuInit: function(e) {
          var button = e.container.find(".k-primary");
          var fieldName = e.field;
          var grid = this;

          button.on("click", function(e) {
            e.preventDefault()
            grid.dataSource.filter({ field: "name", operator: "startswith", value: "Jane" });
          });

        },

Upvotes: 1

Related Questions