我正在尝试为Datatables构建一个帮助类,需要一些建议。
我想创建一个助手,我可以传入一个对象,该对象代表DataTables
由特定模型键入的 a 的设置。该对象将包含一组表达式,这些表达式表示助手要使用的列。作为DataTables
对象的一部分,将有一个属性保存为网格提供数据的 URL。这将有效地成为sAjaxSource
参数。作为 URL 调用的一部分,将发送一个 JSON 包,其中包含有关列的信息。这整个部分,我了解如何构建。基本上,我会构建DataTables
包含列定义的 JavaScript 代码,并创建一个 JSON 对象来表示我想在 URL 中传递的列。
我需要一些建议的领域是在对服务器/控制器进行调用后为特定列构建数据。所以我的控制器可能看起来像这样:
public ActionResult GetUsersList(IEnumerable<DatatableColumnJson> columns)
{
var users = _someUserRepository.GetAll();
foreach (var user in users)
{
//Here I would build the JSON that DataTables needs to render the grid.
//I would iterate through the users and pull out the data for the specific columns
}
return Json(someCompleteDataTablesObject, JsonRequestBehavior.AllowGet);
}
支持类:
public class DatatableColumnJson
{
public string Name { get; set; }
public string Visible { get; set; }
}
public class User
{
public string UserName { get; set; }
public string Email { get; set; }
}
所以我首先想到我可以使用反射,但这似乎有点密集,也许。另一个想法是将列名转换为表达式以可能提取数据。我想要一些高效的东西,而且没有太多的开销,但也许我要求太多了。