Search code examples
javascriptkendo-uikendo-asp.net-mvckendo-multiselect

hiding the Inactive Items form the Suggestions in kendo Multiselect


I have a multiselect in our application. I have a requirement where we should not show the Inactive users in the multi-select dropdown suggestions list. We have the flag in the model. So need to know we can filter the dropdown using that flag. Please find the attached screenshot to get the Idea.

We can filter the data in the ajax call using that flag. But need to get the Names of the already selected Inactive users. So I am trying to hide the Inactive users from the suggestions list only.

So need to show the selected Inactive users, but from the suggestions need to hide inactive users. enter image description here


Solution

  • Not sure if this is the best way, but you can try applying a filter on the dataSource in open event and removing it in close event:

    $("#multiselect").kendoMultiSelect({
      dataSource: {
        data: [{Name: "test 1", Active: true, Id: 1},
              {Name: "test 2", Active: true, Id: 2},
              {Name: "test 3", Active: false, Id: 3},
              {Name: "test 4", Active: true, Id: 4},
              {Name: "test 5", Active: false, Id: 5}]
      },
      value: [1, 3],
      dataTextField: "Name",
      dataValueField: "Id",
      filter: "startswith",
      open: function(e) {
        this.dataSource.filter({ field: "Active", operator: "eq", value: "true" });
      },
      close: function() {
        this.dataSource.filter(null);
      }
    });
    

    Demo