1

나는 ASP.NET MVC Telerik Grid (Kendo가 아님)를 가지고 있습니다. 두 개의 기둥이있는 격자가 있습니다. 첫 번째 열은 내가 선택할 수있는 항목의 드롭 다운 목록이고 두 번째 열은 편집 가능한 텍스트 상자입니다.ASP.NET MVC Telerik Grid : 편집시 한 열만 읽는 방법?

편집시 첫 번째 열을 읽기 전용으로 설정하고 싶습니다. 즉 두 번째 열만 편집 할 수 있지만 첫 번째 열은 편집 할 수 없습니다. 첫 번째 열을 모델 클래스 (모델 클래스의 [ReadOnly] 태그)와보기 (즉, 편집 가능 (false))에서 모두 읽도록 설정했습니다.

이렇게하면 편집 모드에서 원하는대로 첫 번째 열을 편집 할 수 없습니다. 그러나 새 레코드를 삽입/만들 때 첫 번째 열은 비어 있으며 두 번째 열에 대해서만 값을 입력 할 수 있습니다.

나는 모든 것을 시도하고 둘러 보았지만 해결책을 찾지 못했습니다.

+0

당신이 단지 – meda

+0

은 어떻게 선택 목록은 읽기 전용으로 만들 수 있죠 읽을 수 있도록 몇 가지 자바 스크립트를 추가 기운 다? AJAX가 진행 중입니다. 너무 편안하지 않습니다. "편집"을 누르면 SelectList가 나타나고, 그렇지 않으면 두 개의 텍스트 영역 만 표시됩니다. – mute

+0

일부 코드 또는 스크린 샷을 표시 하시겠습니까 ?? – meda

답변

2

나는 텍스트 필드와 비슷한 문제가있었습니다. 편집 이벤트를 연결하여 문제를 해결했습니다.

@Html.Kendo().Grid<MyViewModel>()...Events(e => e.Edit("onGridEdit")) 
<script type="text/javascript"> 
    function onGridEdit(e) { 
    if (!e.model.isNew()) 
     e.container.find('input#ID').prop('disabled', true); 
    } 
</script> 

이 예제에서는 ID 필드를 만든 후에 변경할 수 없도록했습니다. 귀하의 마일리지 및 jQuery는 다를 수 있지만 그 해결책은 유사 할 것으로 판단됩니다.

5

이 시도 :

model.Field(p => p.Name).Editable(false) 

예 :

@(Html.Kendo().Grid<OrderViewModel>() 
    .Name("grid") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.Id).Sortable(false).Visible(false); 
     columns.Bound(p => p.Name); 
     columns.Bound(p => p.Notes); 
     columns.Command(command => { command.Edit(); }).Width(172); 
    }) 
    .Pageable() 
    .Sortable() 
    .Scrollable() 
    .Filterable() 
    .HtmlAttributes(new { style = "height:550px;" }) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .PageSize(20) 
     .Read(read => read.Action("Orders_Read", "Grid")) 
     .Model(model => { 
       model.Id(p => p.Id); 
       model.Field(p => p.Name).Editable(false); 
     }) 
     .Update(update => update.Action("EditingInline_Update", "Grid")) 
    ) 
) 

참조 : http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/configuration#model

+0

감사합니다, 잘 작동합니다! – Mikelon85