title: Kendo Grid Filtering on change Event
body: <p>Actually, my requirement is Whenever the user entering input in filters, the Kendo grid should display the matching records based on input.Please help me to resolve this issue.</p>
  
  <pre><code>@(Html.Kendo().Grid(Model).Name("ViewDataGrid")
  
                                  .Columns(columns =&gt;
                                  {
                                      columns.Bound(c =&gt; c.Id).Title(" ID").Width(150);
                                      columns.Bound(c =&gt; c.Name).Title(" Name").Width(150);
  
                                  })
                                  .HtmlAttributes(new { style = "height: auto; width: 2200px" })
                                  .Filterable(i =&gt; i.Mode(GridFilterMode.Menu | GridFilterMode.Row))
  
                                  .Sortable(s =&gt; s.AllowUnsort(false).SortMode(GridSortMode.MultipleColumn))
                                  .Selectable(selecting =&gt; selecting.Enabled(true))                               
                                  .Pageable(r =&gt; r.PreviousNext(true).PageSizes(new int[] { 10, 20, 30, 40, 50, 100 }))
                                  .DataSource(dataSource =&gt; dataSource
                                  .Ajax()
                                  .PageSize(20)
                                  .ServerOperation(false)
                                  .Events(e =&gt; e.Change("call"))
  
  
      ))
  
  
      function call(e) {
  
              debugger;
  
                      var filterlength = e.sender.filter.arguments[0].filters.length;
                      var ds = $("#ViewDataGrid").data("kendoGrid");
                      $filter = new Array();
  
                      for (var i = 0; i &lt; filterlength; i++) {
                          if (e.sender.filter.arguments[0].filters[i].field == "Id")
                              $filter.push({ field: e.sender.filter.arguments[0].filters[0].field, operator: "eq", value: parseInt(e.sender.filter.arguments[0].filters[0].value) });
                          else
                              $filter.push({ field: e.sender.filter.arguments[0].filters[0].field, operator: "contains", value: e.sender.filter.arguments[0].filters[0].value });
                      }
  
                      $("#ViewDataGrid").data("kendoGrid").dataSource._filter = $filter;
                      $("#ViewDataGrid").data("kendoGrid").dataSource.sync();         
  
  
  
              }
  </code></pre>
  
  <p>Model.CS</p>
  
  <pre><code>   public int Id { get; set; }
  
      public string Name { get; set; }
  </code></pre>
  
  <p>Controller</p>
  
  <pre><code> public ActionResult Index()
      {
          List&lt;GridData&gt; dataList = new List&lt;GridData&gt;(); 
      GridData data1 = new GridData();
          data1.Id = 9191919;
          data1.Name = "XYZ";           
          dataList.Add(data1);
          return View(dataList);           
      }
  </code></pre>
  
  <p>This is working fine for strings.
  But it is not working for integer columns.</p>
  
  <p>Please help me.</p>