I am currently using the multi select for the first time and am encountering a problem with the scenario I am using. 
I have the following cshtml page: 
 
 
 
 
 
 
 
 
 
 
 
 
I am then using this editor on the screen:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This then calls the appropriate controller below:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
So when I go to my editor and select the first multiselect item I get the drop down option but when I select the second one the change event is constantly firing.
I know it is because of the datasource.read() action being performed which is causing this but how do I prevent this.
What I need to be able to do is select the values in the first multi-select (tenantsIdList) and then it rebind the options back to the SchoolsIdList with the found values.
In addition to this I need to be able to remove items from the (SchoolsIdList) if the corresponding (tenantsIdList) is removed.
For example in the tenants options we have
Tenant 1
Tenant 2
Tenant 3
.....
In the schools list we have
School 1 (which is associated with Tenant 1)
School 2 (which is associated with Tenant 2)
School 3 (which is associated with Tenant 3)
.......
So if I select "Tenant 1" in the first multi select I would only see "School 1" in the second multi select
if I then selected "Tenant 2" in the first multi select I would now see School 1 and School 2.
But then if I de-selected "Tenant 1" I would only want School 2 to be available in addition if School 1 had been selected as a value then this should be removed from the list of selected values.
Any assistance would be greatly received.
                                I have the following cshtml page: 
@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}<h2>Index</h2>@using (Html.BeginForm()){    @Html.AntiForgeryToken()    @(Html.Kendo().Grid<InclusionManagerMVC.Models.HouseModels.HouseModel>().Name("HouseGrid")    .HtmlAttributes(new { style = "height:600px;" }).ToolBar(toolbar =>{    toolbar.Create();}).Columns(columns =>{    columns.Bound(c => c.ID).Visible(false);    columns.Bound(c => c.Name).Title("House Name");    columns.Bound(c => c.TooltipText).Title("Description");    columns.Bound(c => c.Active).Title("Enabled");    columns.Command(c => c.Edit());}).Editable(edit =>{    edit.TemplateName("HouseModel").Mode(GridEditMode.PopUp);}).DataSource(datasource =>{    datasource.Ajax()        .Create(create => create.Action("Create_House", "Houses", new { area = "Administration" }).Data("sendAntiForgery"))        .Read(read => read.Action("Read_House", "Houses", new { area = "Administration" }))        .Update(update => update.Action("Update_House", "Houses", new { area = "Administration" }).Data("sendAntiForgery"))        .Model(model =>        {            model.Id(field => field.ID);            model.Field(field => field.ID).DefaultValue(Guid.NewGuid());            model.Field(field => field.Name);            model.Field(field => field.Active).DefaultValue(true);            model.Field(field => field.TooltipText).DefaultValue(string.Empty);            model.Field(field => field.SchoolsIdList).DefaultValue(new List<InclusionManagerMVC.Models.SchoolModels.SchoolsModel>());            model.Field(field => field.TenantIdList).DefaultValue(new List<InclusionManagerMVC.Models.TenantModels.TenantsModel>());        })        .Events(events => events.Error("error_handler"));}).Pageable(page => page.PageSizes(new int[] { 10, 20, 50, 100, 250, 1000 }).Refresh(true)).Sortable().Groupable().Filterable().Scrollable().ColumnMenu()    )}<script type="text/javascript">    function tenantsfilter()    {        var multiSelect = $("#TenantIdList").data("kendoMultiSelect");        var values = multiSelect.value($("#value").val());        console.log(values.length);                 return { tenants: values.toString() };    }    function refresh_multiSelect(e)    {        console.log(e);        $("#SchoolsIdList").data("kendoMultiSelect").dataSource.read();            }</script>I am then using this editor on the screen:
@model InclusionManagerMVC.Models.HouseModels.HouseModel@Html.HiddenFor(m => m.ID)<div class="form-horizontal" role="form" style="padding:10px;">    <div class="form-group">        @Html.LabelFor(m => m.Name, new { @class = "form-label col-lg-2" })        <div class="col-lg-6">            @Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder = "Enter name of the house" })        </div>    </div>    <div class="form-group">        @Html.LabelFor(m => m.TooltipText, new { @class = "form-label col-lg-2" })        <div class="col-lg-6">            @Html.TextAreaFor(m => m.TooltipText, new { @class = "form-control", placeholder = "Enter a description about this house" })        </div>    </div>    <div class="form-group">        @Html.LabelFor(m => m.Active, new { @class = "form-label col-lg-2" })        <div class="col-lg-6">            @Html.CheckBoxFor(m => m.Active)        </div>    </div>    <div class="form-group">         @Html.LabelFor(m => m.TenantIdList, new { @class = "form-label col-lg-2" })        <div class="col-lg-6">            @(                Html.Kendo().MultiSelectFor(m => m.TenantIdList)                .DataTextField("Name")                .DataValueField("ID")                .DataSource(datasource =>                 {                    datasource.Read(read => read.Action("GetTenants", "Houses", new { area = "Administration" }));                })                .Placeholder("Select School Groups")                .IgnoreCase(true)                .HighlightFirst(true)             )        </div>    </div>    <div class="form-group">        @Html.LabelFor(m => m.SchoolsIdList, new { @class = "form-label col-lg-2" })        <div class="col-lg-8">            @( Html.Kendo().MultiSelectFor(m => m.SchoolsIdList)                .DataTextField("Name")                .DataValueField("ID")                .AutoBind(false)                                 .DataSource(datasource =>                {                    datasource.Read(read => read.Action("GetSchools", "Houses", new { area = "Administration" })                        .Data("tenantsfilter"))                        .ServerFiltering(true)                        .Events(events => events.Error("error_handler").Change("refresh_multiSelect"));                })                .Placeholder("Select Schools")                .IgnoreCase(true)                .HighlightFirst(true)                .ItemTemplate("<span class=\"label label-info\">#: data.Name#</span><span class=\"label label-default\">(#:data.TenantName#)</span> ")            )        </div>    </div>    @Html.Partial("_ErrorPanel")</div>This then calls the appropriate controller below:
public JsonResult Read_House([DataSourceRequest] DataSourceRequest request)       {           this.Response.Cache.SetCacheability(HttpCacheability.NoCache);           List<HouseModel> model = new List<HouseModel>();           try           {               model = houseSvc.GetHousesList();           }           catch (Exception error)           {               throw error;           }           return Json(model.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);       }       public JsonResult GetTenants()       {           this.Response.Cache.SetCacheability(HttpCacheability.NoCache);           List<TenantsModel> model = tenantSvc.GetTenantsList(true);                        return Json(model, JsonRequestBehavior.AllowGet);       }       public JsonResult GetSchools(string tenants)       {           this.Response.Cache.SetCacheability(HttpCacheability.NoCache);           List<string> tenantStringList = tenants.Split(',').ToList();           List<TenantsModel> tenants2 = tenantSvc.GetTenantsList(true, tenantStringList);                                    List<SchoolsModel> model = schoolSvc.GetSchoolsList(true, tenants2);           return Json(model, JsonRequestBehavior.AllowGet);       }So when I go to my editor and select the first multiselect item I get the drop down option but when I select the second one the change event is constantly firing.
I know it is because of the datasource.read() action being performed which is causing this but how do I prevent this.
What I need to be able to do is select the values in the first multi-select (tenantsIdList) and then it rebind the options back to the SchoolsIdList with the found values.
In addition to this I need to be able to remove items from the (SchoolsIdList) if the corresponding (tenantsIdList) is removed.
For example in the tenants options we have
Tenant 1
Tenant 2
Tenant 3
.....
In the schools list we have
School 1 (which is associated with Tenant 1)
School 2 (which is associated with Tenant 2)
School 3 (which is associated with Tenant 3)
.......
So if I select "Tenant 1" in the first multi select I would only see "School 1" in the second multi select
if I then selected "Tenant 2" in the first multi select I would now see School 1 and School 2.
But then if I de-selected "Tenant 1" I would only want School 2 to be available in addition if School 1 had been selected as a value then this should be removed from the list of selected values.
Any assistance would be greatly received.