2010-09-27 16 views
5

हम एचटीएमएल फॉर्म टेक्स्ट बॉक्स आउटपुट के लिए एक कस्टम फॉर्मेटर का उपयोग करते हैं। यदि किसी उपयोगकर्ता ने डेटा में प्रवेश किया है और उन्होंने अगला/पिछला बटन दबाया है, तो हम उन्हें बताना चाहते हैं कि "आपने डेटा संपादित किया है, इस पृष्ठ पर बने रहने के लिए ठीक दबाएं और अपना डेटा सहेजें"। तुम ऐसा कैसे कर सकते हो?jqGrid पेजर नेविगेशन को रोकें?

'onPaging' घटना जब आप पेजर का उपयोग करते हैं तो आग लगती है लेकिन ऐसा लगता है कि यह आपको अंकन से होने से रोकने नहीं देता है।


अद्यतन: वर्तमान वैकल्पिक हल:

var currPg = 1; 
var dirty = 'false'; 


    $("#list").jqGrid({ 
    ... 
    onPaging: function (b) { 
     var nextPg = $("#list").getGridParam("page"); 

     if (dirty == 'false') { 
      currPg = nextPg; 
      return; 
     } 


     $("#dialog-confirm").dialog({ 
     modal: true, 
     buttons: { 
      "Stay on current page": function() { 
       $(this).dialog("close"); 
      }, 
      "Change page": function() { 
       $(this).dialog("close"); 
       reloadGrid($("#list"), null, nextPg, 'false'); 
      } 
     } 
     }); 

     $("#list").setGridParam({page:currPg}); //Workaround - jqGrid still increments the page num even when we return stop so we have to reset it (and track the current page num)  
     return 'stop'; 
    }, 

अद्यतन 2: बग लॉग इन here

उत्तर

4

यदि फ़ंक्शन onPaging 'स्टॉप' देता है तो पृष्ठांकन बंद हो जाएगा।

+0

धन्यवाद ओलेग, अब इस पर काम कर रहा है। एक बग मुझे लगता है कि मुझे पता चला है कि यदि आप 'स्टॉप' वापस करते हैं तो ग्रिड पेज नंबर अभी भी बढ़ रहा है .. एक बग सबमिट करेगा .. –

+0

@ मैकर्स: एक वर्कअराउंड के रूप में आप 'सेटग्रिडपाराम' – Oleg

+0

के साथ मान को रीसेट कर सकते हैं कि :) क्या वर्तमान में प्रदर्शित पृष्ठ को निर्धारित करने का कोई तरीका है? यदि आप 'गेटग्रिडपैम (' पेज ') का उपयोग करते हैं, तो यह पृष्ठ लौटाता है जो अगले प्रदर्शित होगा। मैंने प्रदर्शित होने वाले वास्तविक पृष्ठ संख्या का ट्रैक रखने के लिए एक नया चर का उपयोग किया - सुनिश्चित नहीं है कि कोई बेहतर तरीका है .. –

0

मेरे अवलोकन के अनुसार नवीनतम कार्यक्रम jqgrid प्लगइन में अच्छी तरह से काम करता है। अगर हम पिछले jqgrid प्लगइन (3.8 संस्करण से पहले) का उपयोग करते हैं। ऑनपेजिंग इवेंट काम करेगा, लेकिन इस घटना का उपयोग करने के बाद पेजिंग में बग है। पृष्ठ का वृद्धि मूल्य या तो उपयोगकर्ता ठीक या रद्द (दोनों मामलों में) पर क्लिक करें। जो कि पेजिनेशन के दूषित डेटा का कारण बनता है।