我正在尝试为Datatables构建一个帮助类,需要一些建议。
我想创建一个帮助程序,我可以传入一个对象,该对象表示由特定模型键入的DataTables
的设置。此对象将包含一组表达式,这些表达式表示帮助程序要使用的列。作为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; }
}
所以我首先想到我可以使用反射,但这似乎有点密集,也许。另一个想法是将列名转换为表达式,以便可能提取数据。我想要一些有效的东西,而且没有太多的开销,但也许我的要求太多了。