2013-06-17 2 views
0

검도 UI 그리드와 함께 ASP.Net Mvc 4를 사용하고 있습니다. kendo UI 그리드에서 고급 기능을 수행하고 싶습니다. (그리드에서 정렬 된 데이터를 Excel로 내보내고 필터를 추가하는 등). 내보기에서 데이터 소스를 구성하고 컨트롤러에서 "읽기"방법을 구성해야합니다. 표는 LINQ 쿼리에서 채워지고 ViewBag에 저장됩니다. 여기 검도 UI 그리드 : 컨텍스트 모델로 데이터 소스 구성

여기

@(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))    
    ) 

Index.cshtml 내보기에서 면도칼 코드입니다 내가 아약스와 다른 몇 가지 예를 보았다

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(); 
     } 

컨트롤러 ActiveCompController.cs()와 같은 :

 .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 

그러나 LINQ 쿼리의 데이터가 포맷되지 않았기 때문에 작동하지 않았습니다. JSON에서. 또한, 나는 "읽기"방법으로 무엇을 쓸지도 모른다.

내 구성으로 데이터 소스 및 컨트롤러를 구성하는 방법에 대한 의견이 있으십니까?

답변

0

코드가 http://demos.kendoui.com/web/grid/index.html

I과 유사한 그리드에 대한 귀하의 모든 열을 개최 할 회사에 대한 뷰 모델 클래스를 설정하여 시작할 것이라고에서 검도 그리드에 대한 예제와 비슷한 것 같습니다 어떻게 예를 들어 ProductViewModel이 있어야합니다. 에서 public ActionResult Products_Read([DataSourceRequest] DataSourceRequest request)

: 그들은 그들의 방법을 정의한 경우

Name, DateCreated, Quarter, Code, Enabled 

당신이 ASP.NET MVC>로 이동 한 경우 볼 수 IndexController.cs : 예를 들어, 당신은 당신의 ViewModel에 다음과 같은 것 거기에서 LINQ 결과를 ViewModels로 감싸고 JSON 형식으로 반환했음을 알 수 있습니다. 그리드의 DataSource를 설정하는 올바른 길을 걷고 있습니다. 지금까지 컨트롤러가 간다, 당신은 당신이 읽기 논리를 수정할 수

.Read(read => read.Action("Products_Read", "Home"))

.Read(read => read.Action("<YourMethodHere>", "Home"))

을 변경합니다. 그러나 읽기 작업은 단순히 테이블을 채우는 데 사용되며 다른 모든 기능 (예 : 정렬)은 다르게 처리됩니다. 정렬에 대한 자세한 내용은 여기를 참조하십시오. http://demos.kendoui.com/web/grid/sorting.html

+0

감사의 말씀 감사합니다. – user2461642