title: How to set initial filter on a Kendo Grid for ASP.NET
body: <p>I use Kendo Grid for ASP.NET from Telerik to show some data.</p>
  
  <p>Data contains a status that can be filtered. Status contains 3 values; "Draft", "Ready for review" and "Sent".</p>
  
  <p>Initially, I only want to display data with status "Draft" and "Ready for review" - but the user should also be able to view all "Sent" items by changing the filter.</p>
  
  <p>If I set the filter as shown below, the filter dropdown will not display the "Sent" status.</p>
  
  <p><strong>Index.cshtml</strong></p>
  
  <pre><code>@(Html.Kendo().Grid&lt;MyEntity&gt;()
      .Name("Grid")
      .EnableCustomBinding(true)
      .Columns(columns =&gt; {
          columns
              .Bound(e =&gt; e.Created)
              .Filterable(false);
          columns
              .Bound(e =&gt; e.Subject)
              .Filterable(false);
          columns
              .Bound(e =&gt; e.Status)
              .Filterable(f =&gt; f.Multi(true));
      })
      .ClientRowTemplate(
          "&lt;tr data-uid='#: uid #'&gt;" +
          "&lt;td class='col-md-2'&gt;#=kendo.toString(Created,'yyyy-MM-dd')#&lt;/td&gt;" +
          "&lt;td class='col-md-6'&gt;#: Subject #&lt;/td&gt;" +
          "&lt;td class='col-md-2'&gt;#: Status #&lt;/td&gt;" +
          "&lt;/tr&gt;"
      )
      .NoRecords("No records found!")
      .Sortable()
      .Filterable()
      .DataSource(dataSource =&gt; dataSource
          .Ajax()
          .Sort(sort =&gt; {
              sort.Add("Created");
              sort.Add("Status").Ascending();
          })
          .Filter(filters =&gt; {
              filters
                  .Add(f =&gt; f.Status)
                  .IsEqualTo("Draft")
                  .Or()
                  .IsEqualTo("Ready for review");
          })
          .Read(read =&gt; read.Action("GetData", "Controller"))
      )
  )
  </code></pre>
  
  <p><strong>Controller</strong></p>
  
  <pre><code>public ActionResult GetData([DataSourceRequest] DataSourceRequest request)
  {
      // Get data
      var data = db.Data.Where(n =&gt; !n.Deleted.HasValue).ToList();
  
      // Apply sorting
      IQueryable&lt;Xxx&gt; items = data.AsQueryable();
  
      // Apply filters
      items = items.ApplyFiltering(request.Filters);
  
      // Calculate the total number of records
      var total = items.Count();
  
      // Apply sorting
      items = items.ApplySorting(request.Groups, request.Sorts);
  
      // Apply paging
      items = items.ApplyPaging(request.Page, request.PageSize);
  
      // Initialize the DataSourceResult
      var result = new DataSourceResult()
      {
          // Process data (paging and sorting applied)
          Data = items,
          // Total number of records
          Total = total
      };
  
      // Return the result as JSON
      return Json(result);
  }
  
  public static IQueryable&lt;T&gt; ApplyFiltering&lt;T&gt;(this IQueryable&lt;T&gt; data, IList&lt;IFilterDescriptor&gt; filterDescriptors)
  {
      if (filterDescriptors != null &amp;&amp; filterDescriptors.Any())
      {
          data = data.Where(ExpressionBuilder.Expression&lt;T&gt;(filterDescriptors));
      }
  
      return data;
  }
  </code></pre>
  
  <p>How can I set the default filter, but let the user be able to change the filter (enable other values that are not part of the default filter)</p>
  
  <p>In other words I want the default filter for the Status column (when clicking on the small filter button) to look like the image below. </p>
  
  <p><a href="https://i.stack.imgur.com/qscVK.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qscVK.png" alt="Telerik UI for ASP.NET MVC - Kendo Grid"></a></p>