Skip to main content
 首页 » 编程设计

c#之asp.net MVC 4 Telerik Grid Ajax 问题

2024年02月20日33linjiqin

我正面临 mvc telerik 网格的问题 这是我的观点:

@(Html.Telerik().Grid(Model.EmployeeList) 
.Name("EmployeeGrid") 
.Columns(colums => 
    { 
        colums.Bound(e => e.First_Name); 
        colums.Bound(e => e.Last_Name); 
        colums.Bound(e => e.Hire_Date); 
        colums.Bound(e => e.Home_Phone); 
    }) 
    .DataBinding(dataBinding => dataBinding.Ajax().Select("_AjaxBinding", "Home")) 
    .Groupable() 
    .Sortable() 
    .Pageable(paging=>paging.PageSize(10)) 
    .Filterable() 
    ) 

还有我的 Controller 代码

[AcceptVerbs(HttpVerbs.Post)] 
    [GridAction] 
    public ActionResult _AjaxBinding(GridCommand command) 
    { 
        using (var contax=new NorthwindEntities()){ 
            int pagesize=command.PageSize; 
            int page=command.Page; 
 
            var EmployeeList = (from items in contax.Employees 
                                select new 
                                { 
                                    items.First_Name, 
                                    items.Last_Name, 
                                    items.Hire_Date, 
                                    items.Home_Phone 
                                }); 
            return View(new GridModel 
            { 
                Data = EmployeeList 
            }); 
        } 
    } 

加载时,数据从数据库正确加载,但当我单击分页或排序数据时发生内部服务器错误 500。

提前致谢。

请您参考如下方法:

您正在一次性范围内使用 Linq 查询。但查询执行会延迟到使用它(当您离开 using {} 范围时)。 并且您的上下文已处理! 解决方案:

在查询末尾添加 .ToList :

var EmployeeList = (from items in contax.Employees 
                                select new 
                                { 
                                    items.First_Name, 
                                    items.Last_Name, 
                                    items.Hire_Date, 
                                    items.Home_Phone 
                                }).ToList();