2011-11-12 12 views
7

क्या संपादन में मॉडल सत्यापन जोड़ना या jqgrid रूप जोड़ना संभव है? यदि हां, तो यह कैसे किया जाएगा? मुझे पता है कि मैं एक jqGrid रूप पर प्रत्येक फ़ील्ड के लिए कस्टम सत्यापन बना सकता हूं, लेकिन jqGrid पर डिफ़ॉल्ट MVC3 सत्यापन को एकीकृत कैसे कर सकता हूं?jqGrid और MVC3 - मॉडल सत्यापन जोड़ना

मैं एक कस्टम बटन बनाकर ऐसा कर रहा हूं जो एक jQuery संवाद पर आंशिक दृश्य लोड करता है। हालांकि, मैं नियंत्रक को एक और कॉल नहीं करना चाहता हूं, क्योंकि मैं jqGrid के माध्यम से विधिओं को सीधे अपने सभी पंक्ति मान प्राप्त कर सकता हूं (भले ही मैं आंशिक दृश्य मॉडल सत्यापन खो दूंगा)।

कोई संकेत?

+0

पर कर की अनुमति देते हैं आप Trirand से नियंत्रण का उपयोग कर सकते हैं अपने जे एस कोड को संशोधित बिना इस चेक, करना चाहते हैं मैं इस सवाल उपयोगी पाया और दिलचस्प। क्या कोई जवाब या समान प्रश्न मौजूद हैं? धन्यवाद! – Larry

+1

@ लैरी, नहीं। अब तक मैंने कोई जवाब या समान प्रश्न नहीं देखा है। हालांकि, आंशिक दृश्य का उपयोग करना और इसे एक jquery संवाद पर लोड करना बहुत सादा है। यदि आप वास्तव में डिफ़ॉल्ट संवाद का उपयोग करना चाहते हैं, तो आप कॉमर्सियल jqGrid की जांच कर सकते हैं। यह एएसपीएनटी एमवीसी 3 के साथ लगभग पूर्ण एकीकरण है। – AdrianoRR

+0

THX एड्रियानो! मैं पहले से ही 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} (इसलिए यहाँ है, लेकिन अगर इसमें अमान्य ईमेल जांच विफल है)।

अधिक informationa और jqGrid Wiki

में उदाहरण और अगर आप जो आप सर्वर साइड

संबंधित मुद्दे