Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I ended up using a custom view class to get this to work...</p> <pre><code>partial class EmployeeView { public int EmployeeID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string LoginName { get; set; } public bool IsActive { get; set; } public int TotalRecordCount { get; set; } } public string GetPageJSON(string sortColumn, string sortDirection, int pageNumber, int pageSize, EmployeeSearch search) { var query = from e in db.Employees select new EmployeeView { EmployeeID = e.EmployeeID, FirstName = e.FirstName, LastName = e.LastName, LoginName = e.LoginName, IsActive = !e.IsLockedOut, TotalRecordCount = 0 }; //searching. if (search.FirstName.Length &gt; 0) query = query.Where(e =&gt; e.FirstName.Contains(search.FirstName)); if (search.LastName.Length &gt; 0) query = query.Where(e =&gt; e.LastName.Contains(search.LastName)); if (search.LoginName.Length &gt; 0) query = query.Where(e =&gt; e.LoginName.Contains(search.LoginName)); if (search.Status.Length &gt; 0) query = query.Where(e =&gt; (search.Status == "Active" &amp;&amp; e.IsActive) || (search.Status == "Inactive" &amp;&amp; !e.IsActive)); //sorting. query = query.OrderBy(sortColumn, sortDirection); //get total record count. int totalRecordCount = query.Count(); //paging. query = query.Skip((pageNumber - 1) * pageSize).Take(pageSize); //set total record count. var list = query.ToList(); if (list.Count &gt; 0) { list[0].TotalRecordCount = totalRecordCount; } //return json. JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(list); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload