title: Kendo UI grid binding twice
body: <p>Inherited a Kendo app that I'm trying to fix and really stuck here.  I have a search page that is binding to the datasource twice, cannot figure this out. </p>
  
  <p>Here's the grid code:</p>
  
  <pre><code>@(Html.Kendo().Grid&lt;Flex.Models.AddEntryEditModel&gt;()
      .Name("EventGrid")
      .Columns(columns =&gt;
      {
          columns.Command(command =&gt;
          {
              command.Edit(); command.Destroy(); command.Custom("Copy and Create").Click("copyNAddEvent")
                          .HtmlAttributes(new {@class = "copynadd"}); 
          }).Width(169).Title("Action");
          columns.Bound(e =&gt; e.id).Hidden();
          columns.Bound(e =&gt; e.contactName).Width(180).Title("Contact Name");
          columns.Bound(e =&gt; e.contactEmail).Width(180).Title("Contact Email");
          columns.Bound(e =&gt; e.contactPhone).Width(180).Title("Contact Phone #");
      })
  
  
      .HtmlAttributes(new { style = "height:500px;" })
      .ToolBar(tools =&gt; { tools.Excel(); })
      .Excel(excel =&gt; excel
          .AllPages(true)
          .FileName("FlexData.xlsx")
          .Filterable(true)
          .ProxyURL(Url.Action("Excel_Export_Save", "Home"))
      ).Events(x =&gt; x.ExcelExport("onExcelExport"))
  
      .DataSource(datasource =&gt; datasource
              .Ajax()
              .ServerOperation(false)
              .Model(model =&gt; {
                  model.Id(p =&gt; p.id);
                  model.Field(p =&gt; p.application).Editable(false);
                  model.Field(p =&gt; p.componentType).Editable(false);
                  model.Field(p =&gt; p.creditedOrSupportEquipment).Editable(false);
                  model.Field(p =&gt; p.driverType).Editable(false);
                  model.Field(p =&gt; p.eventName).Editable(false);
                  model.Field(p =&gt; p.PMinterval).Editable(false);
                  model.Field(p =&gt; p.PMName).Editable(false);
                  model.Field(p =&gt; p.scheduledMaintenance).Editable(false);
                  model.Field(p =&gt; p.equipmentOperatingHours).Editable(false);
                  model.Field(p =&gt; p.companyName).Editable(false);
                  model.Field(p =&gt; p.plantName).Editable(false);
                  model.Field(p =&gt; p.supportingEventDocument).Editable(false);
              })
              .Read(read =&gt; read.Action("SearchEvents", "Home").Data("FillSearchParms"))
              .Update(update =&gt; update.Action("UpdateEvent", "Home").Data("FillUpdateParms"))
              .Destroy(update =&gt; update.Action("DeleteEvent", "Home"))
              .PageSize(10)
              .Events(e =&gt; 
              { 
                  e.RequestEnd("onRequestEnd");
              })
      )
  )
  </code></pre>
  
  <p>and here is my jQuery for the search button:</p>
  
  <pre><code>$("#SearchBtn").click(function (e) {
      e.preventDefault();
  
      if (!validator.validate()) {
          return;
      }
  
      var descr = $("#Description").data("kendoEditor");
      //debugger;
  
      $.ajax({
          type: "POST",
          url: "/Home/SearchEvents",
          datatype: "json",
          data: {
              id: null,
              eventDate: $("#EventDate").val(),
              eventDateTo: $("#EventDateTo").val(),
              application: defaultDD("Application"),
              componentType: defaultDD("ComponentType"),
              creditedOrSupportEquipment: defaultDD("CreditedOrSupportEquipment"),
              equipmentID: $("#EquipmentId").val(),
              driverType: defaultDD("DriverType"),
              eventName: defaultDD("EventName"),
              make: $("#Make").val(),
              model: $("#Model").val(),
              PMinterval: defaultDD("PMInterval"),
              PMName: defaultDD("PMName"),
              scheduledMaintenance: defaultDD("ScheduledMaintenance"),
              equipmentOperatingHours: defaultDD("equipmentOperatingHours"),
              companyName: defaultDD("CompanyName"),
              plantName: defaultDD("PlantName"),
          },
          success: function (result) {
              $("#searchEventGrid").attr("style", "display: block;");
              //debugger;
              var grid = $("#EventGrid").data("kendoGrid");
  
              grid.dataSource.read();
              grid.refresh();
              e.preventDefault();
  
              $("#searchbar").data("kendoPanelBar").collapse($("li.k-state-active"));
          },
          error: function (xhr, txt) {
              //debugger;
              var err = xhr.responseText.match(/.*&lt;body.*&gt;([\s\S]*)&lt;\/body&gt;.*/); ;
              custom_alert(err, "Error!");
          }
      })
  })
  </code></pre>
  
  <p>When I click the search button, it brings back the correct recordset the first time, then it refreshes and brings back the whole dataset.  Newer to Kendo, can't figure out where that second call is coming from.</p>