我正在使用带有 Kendo UI 网格的 ASP.Net Mvc 4。我想在 kendo UI 网格上执行更高级的功能(比如将排序后的数据从网格导出到 excel、添加过滤器等)。我需要在我的视图中配置数据源和控制器中的“读取”方法。网格由 LINQ 查询填充并存储在 ViewBag 中。
这是我认为 Index.cshtml 中的剃刀代码
@(Html.Kendo().Grid((IEnumerable<Reports.Models.Company>)ViewBag.ActComp)
.Name("grid")
.Columns(columns =>
{
columns.Bound(comp => comp.Name);
columns.Bound(comp => comp.DateCreated);
columns.Bound(comp => comp.Quarter).Sortable(false);
columns.Bound(comp => comp.Code);
columns.Bound(comp => comp.Enabled).Column.Title = "Active";
})
.Sortable()
.Groupable()
.Scrollable(src => src.Height(500))
)
这是控制器 ActiveCompController.cs
namespace Reports.Controllers
{
public class ActiveCompController : Controller
{
private FSLContext fslData = new FSLContext();
public ActionResult Index()
{
ViewBag.ActComp = from b in fslData.Companies
where b.Enabled == true
orderby b.Name
select b;
return View();
}
我已经看到了几个不同的 .Ajax() 示例,例如:
.DataSource(dataSource => dataSource // Configure the grid data source
.Ajax() // Specify that ajax binding is used
.Read(read => read.Action("Products_Read", "Home")) // Set the action method which will return the data in JSON format
但是,它不起作用,因为我的数据来自未格式化为 JSON 的 LINQ 查询。另外,我不知道在“读取”方法中要写什么。
关于如何使用我的配置配置数据源和控制器的任何想法?