2014-12-09 5 views
0

내 mvc5 프로젝트에서 MVCJqGrid HTML 래퍼와 함께 JqGrid를 사용하고 있습니다. 사용중인 MVCJqGrid 버전은 1.0.15입니다. 페이지에 그리드를 생성하기 위해 다음 cshtml 파일에 다음 코드가 있습니다.MVCJqGrid 확인란 열 사용 안 함

@(Html.Grid("Contacts") 
     .SetCaption("Contacts") 
     .SetUrl(@Url.Action("Contacts", "Home")) 
     .SetAutoWidth(true) 
     .SetViewRecords(true) 
     .AddColumn(new Column("Name").SetAlign(Align.Left).SetEditable(false)) 
     .AddColumn(new Column("IsPrimaryContact").SetAlign(Align.Center).SetFormatter(Formatters.Checkbox).SetLabel("Is Primary?")) 
     .AddColumn(new Column("Email").SetLabel("Email Address").SetFormatter(Formatters.Email)) 
     .AddColumn(new Column("Handphone").SetAlign(Align.Right).SetFormatter(Formatters.Number)) 
     .AddColumn(new Column("Office").SetAlign(Align.Right)) 
     .AddColumn(new Column("Telephone").SetAlign(Align.Right)) 
     .AddColumn(new Column("Other").SetAlign(Align.Right)) 
) 

위의 코드에서 "IsPrimaryContact"는 bool 값으로 그리드의 확인란 열로 표시합니다. 페이지가로드되면 모든 열이 읽기 전용으로 표시됩니다. 즉 수정할 수는 없지만 확인란 열은 편집 가능한 상태로 유지되며 열의 확인란을 선택/선택 취소 할 수 있습니다. 체크 박스를 비활성화하고 사용자가 값을 변경할 수 없도록해야합니다. CheckBox 열에 SetEditable을 false로 추가했으며 다른 몇 가지 작업을 시도했지만 열의 checkbox는 항상 사용 가능 상태로 유지됩니다. 페이지가로드 될 때 열의 체크 박스를 사용 중지 된 것으로 표시 할 수 있습니까?

답변

0

표준 포맷터를 사용하는 대신 사용자 정의 포맷터를 사용할 수 있습니다. 여기 예를 들어 열에 대한 사용자 정의 포맷터 설정 http://mvcjqgrid.skaele.it/Home/Formatters

찾을 수 있습니다

.AddColumn(new Column("IsPrimaryContact").SetAlign(Align.Center).SetCustomFormatter("displayCheckBox").SetLabel("Is Primary?")) 

포매터 기능을

<script type="text/javascript"> 
    function displayCheckBox(cellvalue, options, rowobject) { 
     return '<input type="checkbox" value="' + cellvalue + '" disabled="disabled">'; 
    } 
</script> 

코드를 테스트하지 못했지만, 그것을 작동합니다)

+0

답장을 보내 주신 Robin에게 감사드립니다. JqGrid를 처음 접했고이 대답을 통해 CustomFormatter를 사용하게되었습니다. 질문이 하나 더 있지만이 문제와 관련이 없습니다. 컨트롤러 메서드에서 데이터를 가져 오는 대신 데이터 바인딩을 제공하려는 경우 가능합니까? 나는 [KMVC] (https://www.nuget.org/packages/kMVC/)를 사용합니다. – user2185592

+0

질문을 올바르게 이해하면 asp.net 웹 폼과 같은 데이터 바인딩을 의미합니까? 그렇다면 아뇨, 제가 아는 한 불가능합니다. –