title: how can i make my kendo dropdown list live ? ?_?
body: <p>i have a kendo Dropdown list its working but i need to make it a live one without the button... whenever i pick one item inside the dropdown it automatically update whats inside my grid or the query on my grid base on the selected on the dropdown list.</p>
  
  <p>here's my code:</p>
  
  <pre><code>@using (Html.BeginForm())
  {
      &lt;input type="hidden" id="hiddenUser" name="hiddenUser" value="@userId" /&gt;
      &lt;p&gt;
          &lt;input id="ddlWorker" name="ddlWorker" style="width: 250px;"   value="@ddlWorker" /&gt;
          &amp;nbsp;
          &lt;input type="submit" value="Filter Workers by Position" class="styledButton" /&gt;
      &lt;/p&gt;
  }
  </code></pre>
  
  <p>JS:</p>
  
  <pre><code>var userId = $("#hiddenUser").val();
  
  $("#ddlWorker").kendoDropDownList({
      dataTextField: "JobCode",
      dataValueField: "ID",
      autoBind: false,
  
      optionLabel: {
          JobCode: "--- Please Select Position ---",
          ID: ""
      },
      // define custom template
      template: '&lt;h5&gt;${ data.JobCode }&lt;/h5&gt;',
  
      dataSource: {
          transport: {
              read: {
                  url: '/Worker/LoadWorkerDropdownList?userId=' + userId,
                  dataType: "json",
                  type: "POST"
              }
          }
      }
  });
  
  var dropdownlist = $("#ddlWorker").data("kendoDropDownList");
  
  dropdownlist.list.width(250);
  </code></pre>
  
  <p>my controller for the grid</p>
  
  <pre><code>public JsonResult LoadWorkerList( string search, int? positionSelected, int? statusValue)
          {
  
  
              // check if search string has value
              // retrieve list of workers filtered by search criteria
              var list = (from a in db.Workers
                          where a.LogicalDelete == false
                          select a).ToList();
  
              List&lt;WorkerInfo&gt; wlist = new List&lt;WorkerInfo&gt;();
              foreach (var row in list)
              {
                  WorkerInfo ci = new WorkerInfo
                  {
                      ID = row.ID,
                      FirstName = row.FirstName,
                      LastName = row.LastName,
                      Name = row.FirstName + " " + row.LastName,
                      LastFName = row.LastName + " " + row.FirstName,
                      PositionSelected = positionSelected,
                      LogicalDelete = row.LogicalDelete
  
                  };
                  wlist.Add(ci);
              }
              if (positionSelected.HasValue)
              {
                  var workerIdList = new List&lt;Int32&gt;();
  
                  var filterList = (from a in db.Client_Worker_Position
                                    where a.LogicalDelete == false &amp;&amp; positionSelected == a.ClientCustomerPositionID
                                    select a).ToList();
                  var listSelect = (from a in db.Worker_Availability
                                    where a.LogicalDelete == false
                                    select a).ToList();
  
                  foreach (var row in listSelect)
                  {
  
                      var shiftList = (from a in db.Client_Customer_Position_Shift
                                       where a.LogicalDelete == false &amp;&amp; positionSelected == a.Client_Customer_PositionID
                                       select a).ToList();
  
                      foreach (var positionShift in shiftList)
                      {
  
  
                          if (positionShift.Day_LookID == row.AvailableDay_LookID || positionShift.Day_LookID == 76 || row.AvailableDay_LookID == 76)
                          {
  
                              if (((positionShift.StartTime == "Anytime" &amp;&amp; positionShift.EndTime == "Anytime") || (row.StartTime == "Anytime" &amp;&amp; row.EndTime == "Anytime")) ||
                                   (row.StartTime == "Anytime" || row.EndTime == "Anytime") || (positionShift.StartTime == "Anytime" || positionShift.EndTime == "Anytime"))
                              {
                                  workerIdList.Add(row.ID);
                              }
                              else
                              {
                                  DateTime posStartTime = Convert.ToDateTime(positionShift.StartTime);
                                  DateTime availStartTime = Convert.ToDateTime(row.StartTime);
                                  DateTime posEndTime = Convert.ToDateTime(positionShift.EndTime);
                                  DateTime availEndTime = Convert.ToDateTime(row.EndTime);
  
  
                                  if ((positionShift.StartTime == row.StartTime &amp;&amp;
                                      positionShift.EndTime == row.EndTime) || (positionShift.StartTime == row.StartTime ||
                                      positionShift.EndTime == row.EndTime)
                                      || (posStartTime &lt; availStartTime &amp;&amp; posEndTime &gt; availEndTime))
                                  {
                                      workerIdList.Add(row.ID);
                                  }
                              }
  
                          }
  
                      }
  
                  }
  
                  var toBeList = (from a in listSelect
  
                                  where a.LogicalDelete == false
                                  select a).ToList();
                  var setToList = toBeList.Select(x =&gt; x.ID).Except(filterList.Select(y =&gt; y.WorkerAvailabilityId)).ToList();
  
                  var selectedPosition = (from a in listSelect
                                          join b in db.Workers
                                          on a.Worker_ID equals b.ID
                                          join c in db.Client_Customer_Position
                                          on positionSelected equals c.ID
                                          where workerIdList.Contains(a.ID) &amp;&amp; a.LogicalDelete == false &amp;&amp; b.LogicalDelete == false
                                          &amp;&amp; c.LogicalDelete == false &amp;&amp; setToList.Contains(a.ID)
                                          select new WorkerInfo()
                                          {
                                              ID = b.ID,
                                              WorkerAvailID = a.ID,
                                              FirstName = b.FirstName,
                                              PositionSelected = positionSelected,
                                              LastName = b.LastName
  
  
                                          }).ToList();
  
  
                  var distinctList = selectedPosition.GroupBy(x =&gt; x.ID)
                           .Select(g =&gt; g.First())
                           .ToList();
  
  
                  wlist = distinctList.ToList();
  
              }
              if (!search.Equals("Search Worker"))
              {
  
                  var wolist = (from a in wlist
                                where a.FirstName.ToLower().Contains(search.ToLower()) ||
                                a.LastName.ToLower().Equals(search.ToLower()) ||
                                a.Name.ToLower().Equals(search.ToLower()) ||
                                a.LastFName.ToLower().Equals(search.ToLower())
                                select a).ToList();
                  wlist = wolist;
              }
              else
              {
                  var wolist = (from a in wlist
                                where a.LogicalDelete == false
                                select a).ToList();
                  wlist = wolist;
              }
              ViewBag.positionSelected = positionSelected;
              return Json(wlist.ToList().OrderBy(p =&gt; p.FirstName.ToLower()), JsonRequestBehavior.AllowGet);
          }
  </code></pre>
  
  <p>thanks :D</p>