2013-07-11 4 views
0

열 중 하나가 부울 값인 검도 그리드 뷰가 있습니다. 열에는 정보가 "true"(1 또는 true), "false"(0 또는 false) 또는 공백 (null)으로 표시됩니다. 이것은 매우 전문적으로 보이지 않으며 그리드에서이 값을 예, 아니요 또는 없음으로 각각 변경하려고합니다. 나는이 일어날 수 있도록하려고 사용하고있는 코드는 다음과 같습니다C# 열 항목의 표시된 이름 변경

모델 :

namespace MvcApplication.Models 
{ 
    public class Companies 
    { 

     public string IsAdmitted { get; set; } 

컨트롤러 :

[HttpPost] 
    public ActionResult Companies_Read([DataSourceRequest] DataSourceRequest request) 
    { 
     using (var companydata = new CompaniesDataContext()) 
     { 
      List<Companies> model = new List<Companies>(); 
      var companylist = companydata.Companies_JBs.Select(s => s).ToList(); 
      foreach (var h in companylist) 
      { 
       Companies x = new Companies(); 
       x.IsAdmitted = h.IsAdmitted == (bool)true ? x.IsAdmitted = "Yes" : h.IsAdmitted == (bool)false ? x.IsAdmitted = "No" : x.IsAdmitted = "Null"; 
       model.Add(x); 
      } 

      return Json(companydata.Companies_JBs.ToDataSourceResult(request)); 
     } 
    } 

보기 :

@(Html.Kendo().Grid(Model) 
    .Name("Company_Grid") 
    .Columns(columns => 
     { 
      columns.Bound(o => o.IsAdmitted).Title("Admitted:").Width(95); 
      columns.Command(command => { command.Edit(); command.Destroy(); }); 
     } 
    ) 
    .ToolBar(toolbar => toolbar.Create().Text("Add a Company")) 
    .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("Companies")) 
    .Pageable() 
    .Sortable() 
    .Scrollable() 
    .HtmlAttributes(new { style = "height:430px;" }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .PageSize(20) 
     .Events(events => events.Error("error_handler")) 
     .Model(model => model.Id(o => o.ID)) 
     .Create(update => update.Action("Companies_Create", "Home")) 
     .Update(update => update.Action("Companies_Update", "Home")) 
     .Destroy(update => update.Action("Companies_Destroy", "Home")) 
     .Read(read => read.Action("Companies_Read", "Home")) 
    ) 
) 

중단 점을 넣고 값을 확인하면 IsAdmitted 필드 항목에 예, 아니요 또는 없음 (내 sql 데이터베이스의 값에 따라 다름)이라는 레이블이 붙습니다. 그러나 그리드 자체에서 여전히 true, false 또는 blank로 레이블됩니다. 내 문제는 뭐지? 아니면 이럴 수있는 더 좋은 방법이 있니?

답변

1

Json(companydata.Companies_JBs.ToDataSourceResult(request));을 반환하는 이유는 무엇입니까?

model을 반환해야합니다. 따라서 컨트롤러 메서드의 반환 문은

return Json(model.ToDataSourceResult(request)); 
이어야합니다.