2011-11-12 2 views
7

모델 유효성 검사를 편집에 추가하거나 jqgrid 양식을 추가 할 수 있습니까? 그렇다면 어떻게 될까요? jqGrid 폼의 각 필드에 대해 사용자 지정 유효성 검사를 만들 수 있지만 jqGrid에 대한 기본 MVC3 유효성 검사를 어떻게 통합 할 수 있습니까?jqGrid & MVC3 - 모델 유효성 검사 추가

저는 jQuery 대화 상자에서 부분 뷰를로드하는 사용자 정의 단추를 작성하여이 작업을 수행했습니다. 그러나 jqGrid get 메서드를 통해 부분 뷰 모델 유효성 검사를 잃을지라도 직접 모든 행 값을 가져올 수 있다는 점을 감안할 때 컨트롤러에 대한 다른 호출을하고 싶지 않습니다.

힌트가 있습니까?

+0

에 그것을 할 수 있도록 당신이 Trirand에서 컨트롤을 사용할 수 있습니다 JS 코드를 수정하지 않고이 검사를 수행하려는 경우 jqGrid Wiki

에서

더 informationa 및 예제는이 질문에 유용 발견 재미있다. 대답이나 비슷한 질문이 있습니까? 고마워! – Larry

+1

@Larry, Nope. 지금까지 나는 어떤 대답이나 비슷한 질문을 보지 못했습니다. 그러나 부분 뷰를 사용하여 jquery 대화 상자에로드하는 것은 매우 평이합니다. 정말로 기본 대화 상자를 사용하려면 comercial jqGrid를 확인할 수 있습니다. 그것은 거의 asp.net mvc3와 완벽하게 통합되어 있습니다. – AdrianoRR

+0

THX Adriano! jquery 대화 상자에서 이미 jqgrid를 사용하고 있습니다. 이제 레코드를 추가/편집해야하며 일부 필드에는 사용자 지정 원격 유효성 검사를 포함하여 여러 가지 유효성 검사가 있습니다. 다른 제안/힌트를 주시겠습니까? 고맙습니다! – Larry

답변

0

jqGrid에 익숙하지 않지만 부분 뷰를 렌더링하는 컨트롤러 동작에서 jQuery 대화 상자를 채우는 것과 관련하여 일반적으로 동일한 작업을 수행했습니다.

콜백 대신 jqGrid 뷰가 렌더링 될 때 부분 뷰를로드 할 수 있습니다. 그런 다음 선택한 행의 필드를 채 웁니다. 고려해야 할 몇 가지 샘플 코드가 있습니다.

그리드보기 :

@model List<Customer> 

<!-- create jqGrid here --> 

@Html.PartialView("CustomerForm",new Customer()); 

CustomerForm :

@model Customer 

<div id="CustomerForm"> 
@using (Html.BeginForm("Save","Customer",...)) 
{ 
    @Html.HiddenFor(m => m.CustomerId) 
    <div class="control-group"> 
     @Html.LabelFor(m => m.CustomerName) 
     <div class="controls"> 
      @Html.EditorFor(m => m.CustomerName) 
      @Html.ValidationFor(m => m.CustomerName) 
     </div> 
    </div> 
    <p><input type="submit" id="submit" value="Save" /></p> 
} 
</div> 

<script type="text/javascript"> 
    var $cf = $('#CustomerForm'); 
    $cf.dialog({ autoOpen: false }); // see jquery ui docs for exact options 


    $('#myGrid .edit, #myGrid .add').click(function() { 
     $(this).closest('tr').find('input, select').each(function() { 
      $('input[name='+this.name+'], select[name='+this.name+']',$cf).val($(this).val()); 
     }); 
     $cf.dialog('open'); 
    }); 
</script> 
0

예 :

$(document).ready(function() { 
    $("#jqg").jqGrid({ 
     url: '@Url.Action("GetData")', 
     datatype: "json", 
     colNames: ['User name', 'Email'], 
     colModel: [ 
     { name: 'UserName', index: 'UserName', width: 150, sortable: true, editable: true }, 
     { name: 'Email', index: 'Email', width: 150, sortable: true, editable: true, editrules:{email:true, required:false}} 
     ], 
     caption: "User List" 
    }); 

검증이 필드 괜찮아 비어있는 경우, 여기에 너무 editrules:{email:true, required:false} (하지만 경우 유효하지 않은 이메일 확인이 포함되어 있음). 당신은 서버 측