Problema:jQuery DataTables procesamiento del lado del servidor usando ASP.NET WebForms
- jQuery procesamiento del lado del servidor DataTables usando ASP.NET WebForms.
Solución:
- Darin Dimitrov respondieron a la pregunta con un ejemplo qué páginas y géneros, pero no hace ninguna búsqueda. Aquí está mi ** ** modificación básica de su trabajo para hacer la búsqueda de trabajo en su ejemplo:
public class Data : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Paging parameters:
var iDisplayLength = int.Parse(context.Request["iDisplayLength"]);
var iDisplayStart = int.Parse(context.Request["iDisplayStart"]);
// Sorting parameters
var iSortCol = int.Parse(context.Request["iSortCol_0"]);
var iSortDir = context.Request["sSortDir_0"];
// Search parameters
var sSearch = context.Request["sSearch"];
// Fetch the data from a repository (in my case in-memory)
var persons = Person.GetPersons();
// Define an order function based on the iSortCol parameter
Func<Person, object> order = person => iSortCol == 0 ? (object) person.Id : person.Name;
// Define the order direction based on the iSortDir parameter
persons = "desc" == iSortDir ? persons.OrderByDescending(order) : persons.OrderBy(order);
// prepare an anonymous object for JSON serialization
var result = new
{
iTotalRecords = persons.Count(),
iTotalDisplayRecords = persons.Count(),
aaData = persons
.Where(p => p.Name.Contains(sSearch)) // Search: Avoid Contains() in production
.Where(p => p.Id.ToString().Contains(sSearch))
.Select(p => new[] {p.Id.ToString(), p.Name})
.Skip(iDisplayStart) // Paging
.Take(iDisplayLength)
};
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(result);
context.Response.ContentType = "application/json";
context.Response.Write(json);
}
public bool IsReusable { get { return false; } }
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public static IEnumerable<Person> GetPersons()
{
for (int i = 0; i < 57; i++)
{
yield return new Person { Id = i, Name = "name " + i };
}
}
}
He implementado tablas de datos en todo mi proyecto en PHP, tuve que crear mis propias clases porque ese ejemplo no es realmente útil fuera de tareas específicas (y es difícil de seguir). Debería tratar con alrededor de 100 líneas para la solicitud y la respuesta de su clase. Normalmente no trato con ASP.net pero veré si puedo encontrar algo para ti. – Incognito
He probado este código y me doy cuenta de que la búsqueda y el recuento de registros siguen siendo los mismos cuando filtra el objeto. – zXSwordXz