2012-05-22 109 views
0

我有一个MVC3 Telerik应用程序。这是我的控制器:用Teleriks Grid自定义数据绑定

[GridAction] 
    public ActionResult Index(GridCommand command) 
    { 
     IEnumerable<Order> data = GetData(command); 
     var dataContext = new NorthwindDataContext(); 

     //Required for pager configuration 
     ViewData["total"] = dataContext.Orders.Count(); 

     return View(data); 
    } 

    [GridAction(EnableCustomBinding = true)] 
    public ActionResult _CustomBinding(GridCommand command) 
    { 
IEnumerable<Order> data = GetData(command); 

var dataContext = new NorthwindDataContext(); 
return View(new GridModel 
{ 
    Data = data, 
    Total = dataContext.Orders.Count() 
}); 
} 

    //Utility method which does custom paging and sorting using Linq 
    private static IEnumerable<Order> GetData(GridCommand command) 
    { 
     var dataContext = new NorthwindDataContext(); 
     IQueryable<Order> data = dataContext.Orders; 


     if (command.PageSize > 0) 
     { 
      data = data.Skip((command.Page - 1) * command.PageSize); 
     } 

     data = data.Take(5); 
     return data; 
    } 

这是我的Razor视图:

@model IEnumerable<Telerik.Order> 

    @(Html.Telerik().Grid(Model) 
    .Name("Grid") 
    .Columns(columns => 
    { 
     columns.Bound(o => o.OrderID).Width(100); 
     columns.Bound(o => o.Customer.ContactName).Width(200); 
     columns.Bound(o => o.ShipAddress); 
     columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(100); 
    }) 
       .DataBinding(dataBinding => 
       { 
        dataBinding.Ajax().Select("_CustomBinding", "Home").Enabled(true); 
      }) 
     .Pageable(pager => pager.Total((int)ViewData["total"])) 
     .EnableCustomBinding(true) 
     .Sortable() 

当我运行的应用程序,它加载很好,但是当我点击了一些寻呼排在底部,我得到:

Error! The requested URL returned 500- Internal server error 

它调用我的函数_CustomBinding,当我通过它一步犯规抛出一个错误。什么导致这个错误?

回答

0

这意味着_CustomBinding方法中发生了服务器端异常。您可以检查实际的服务器响应是什么 - 它将包含堆栈跟踪。使用Fiddler或您的浏览器的开发人员工具来检查服务器响应是什么。