2013-05-01 2 views
0

어떻게 DataGridView에 검도의 내 데이터 영역 (DL)?, 가 나는 또한 telerik 검도의 문서에 볼을 사용하여 데이터를 표시,하지만 난 그것을 혼란을 발견하기?Kendoui의 DataGridview에 데이터를 표시하는 방법은 무엇입니까?

아래 코드를 실행하면 열 제목 만 표시됩니다.

보기

@(Html.Kendo().Grid<sampleProj.Model>() // Specify the type of the grid 
    .Name("Grid") 
    .BindTo((IEnumerable<sampleProj.Model>)ViewBag.Products) 
    .Columns(columns => 
    { 
     columns.Bound(p => p.FirstName); 
     columns.Bound(p => p.LastName); 
     columns.Bound(p => p.MName); 
     columns.Bound(p => p.Name); 
    }) 
) 

오류와 업데이트 코드

@(Html.Kendo().Grid((List<MDL.Employee>)ViewData["oEmployees"]) 
.Name("Grid")  
.Columns(columns => 
{   
    columns.Bound(p => p.Code).Title("Code"); 
    columns.Bound(p => p.FirstName).Title("First Name").Width(140); 
    columns.Bound(p => p.LastName).Title("Last Name").Width(140); 
    columns.Bound(p => p.Position).Title("Position").Width(100); 
}) 

ㅁ 나는 다음과 같은 속성을 추가 엉이 오류가

HttCompileException가 예외를 던졌다 사용자 코드 외부 구성 요소에 의해 처리되지 않은했다 묘사 나는 아래의 코드를 제거 할 때, 데이터 그리드 뷰하지만 작업 방법을 표시

.ToolBar(toolbar => { 
     toolbar.Create(); 
     toolbar.Save(); 
     toolbar.Custom();  
    }) 

    .Editable(editable => editable.Mode(GridEditMode.InCell)) 
    .Pageable() 
    .Sortable() 
    .Scrollable() 
    .DataSource(dataSource => dataSource   
     .Ajax()   
     .Batch(true) 
     .ServerOperation(false) 
     .Events(events => events.Error("error_handler")) 
     .Model(model => model.Id(p => p.Code)) 
     .Read(read => read.Action("dialogEmp_read", "MasterData")) 
     .Create(update => update.Action("dialogEmp_Create", "MasterData")) 
     .Update(update => update.Action("dialogEmp_Update", "MasterData")) 
     .Destroy(update => update.Action("dialogEmp_Destroy", "MasterData")) 

    ) 

답변

1
당신은 당신이 당신의 읽기 메타 누락 있습니다 위의 과정에서이 프로세스를 수행 할 필요가

검도 그리드 그래서 컨트롤러에서 당신이 을 삭제하고 만들기 업데이트, 읽기에 대한 위의 모든 방법을 만들어야합니다, Cshtml 페이지 이제

@(Html.Kendo().Grid<sampleProj.Model.ListWhichYouAreBinding/StoredProcedure/ModelName>() 
      .Name("GridName") 
      .Columns(columns => 
      { 
columns.Bound(p => p.Name).Title("Name"); 
columns.Bound(p => p.Phone).Title("Phone"); 
columns.Bound(p => p.OtherValue).Title("Balance").Format({0:c}").HtmlAttributes(new 
{ 
    style = "text-align:right; padding-right: 11%;" 
}); 
columns.Command(command => 
{ command.Destroy(); 
    command.Edit(); 
     }).Width(150); 
     }) 
     .ToolBar(toolbar => toolbar.Create().Text("Add New")) 
     .Editable(editable => editable.Mode(0)) 
     .Sortable() 
     .DataSource(dataSource => dataSource 
     .Ajax() 
     .Model(model => 
     { 
      model.Id(p => p.GivePrimaryKeyFieldNAme); 
      model.Field(p => p.GivePrimaryKeyFieldNAme).Editable(false); 
     }) 

     .Create(update => update.Action("CreateRow", "ControllerName")) 
     .Read(read => read.Action("GetData", "ControllerName",)) 
     .Update(update => update.Action("UpdateRow", "ControllerName")) 
     .Destroy(update => update.Action("DeleteRow", "ControllerName")) 
     )) 

에 다음 코드를 참조하십시오. 나는 읽기에 대해서만 말할 것입니다. 귀하의 컨트롤러에 가서 이렇게해라.

Read(read=>read.action in above) 

가 GetData의 따라서는, 컨트롤러에서 확인이

[HttpPost] 
public ActionResult GetData ([DataSourceRequest] DataSourceRequest request) 
{ 
var YourData=Get Your List Here From Datatbase; 
return Json(YourData.ToDataSourceResult(request)); 
} 

희망과 같은 기능이 작동합니까 즉 함수의 기억 이름

에 기록되는 동일해야합니다 너에게.

+0

감사합니다.하지만 ** DataSource **에 무엇을 삽입해야합니까? DataSource의 규칙은 무엇입니까? 감사! – user2334753

+0

DataSource는 그리드로 반환하거나 그리드에 표시하려는 것입니다. YourData가 DB로부터 데이터를받는 컨트롤러의 메소드를 참조하십시오. 여기에서 DB로부터 데이터를 호출 할 수 있습니다. ObjDataContext.YourTable(). Tolist(); CSHtml Model.Id에서 기본 키 필드의 이름을 지정하십시오. – Prince

+0

잘 모르겠다. 나는 의심을 이해하고 적절하게 대답했지만, 한번 시도해보아야 만하고 내 대답이 유용하다고 표시해 주시기 바랍니다. – Prince

관련 문제