jqgrid

2012-12-04 25 views
5

में दो फ़ूटर पंक्तियां कैसे बनाएं I am.N.NET WEB API के साथ jqgrid पर काम कर रहा हूं।jqgrid

मैं jqgrid के पाद लेख में दो पंक्तियां जोड़ना चाहता हूं।

तो नेट पर थोड़ी सी खोज ने मुझे इस लिंक (2010) में लाया जो कहता है "यह संभव नहीं है", मैं सोच रहा हूं कि उत्तर 2010 का है, अब तक कुछ चीज हो सकती है/कुछ कामकाज हो सकता है इसके लिए संभव बनाया।

मैं पाद लेख में क्या दिखाना चाहता हूं?

मैं दो पंक्तियों

दिखाना चाहते हैं
  • वर्तमान पृष्ठ में डेटा पूर्व निर्धारित
  • के सभी पृष्ठों में मौजूद डेटा के लिए कुल योग कुल

मैं डेटा पास करने में सक्षम हूँ और डेटा पढ़ें, प्रश्न यह है कि इस डेटा का उपयोग कैसे करें और jqgrid में दो पाद लेख पंक्तियां बनाएं।

कोई विचार?

+0

इस लिंक को चेक करें: http://stackoverflow.com/questions/7392987/jqgrid-total-amount-row –

उत्तर

12

मैं सवाल दिलचस्प पाया, तो मैं the demo जो दो पंक्तियों पाद लेख के संभावित कार्यान्वयन से एक को दर्शाता है बनाया:

enter image description here

मुख्य विचार तालिका में दूसरी पंक्ति जोड़ने के लिए है, जहां मानक पाद लेख पहले से मौजूद है। JqGrid कोड के अन्य हिस्सों के साथ संभावित समस्याओं को खत्म करने के लिए मैंने footrow क्लास नाम को कस्टम पंक्ति में myfootrow पर बदल दिया। मूल tooter मैं .ui-jqgrid tr.myfootrow td के लिए एक ही परिभाषा के साथ ui.jqgrid.css से .ui-jqgrid tr.footrow td की प्रति शामिल है के रूप में दूसरा पाद लेख के लिए एक ही सीएसएस सेटिंग है करने के लिए:

.ui-jqgrid tr.myfootrow td { 
    font-weight: bold; 
    overflow: hidden; 
    white-space:nowrap; 
    height: 21px; 
    padding: 0 2px 0 2px; 
    border-top-width: 1px; 
    border-top-color: inherit; 
    border-top-style: solid; 
} 

पूर्ण कोड आप नीचे दिए गए मिलेगा

footerrow: true, 
loadComplete: function() { 
    var $this = $(this), 
     sum = $this.jqGrid("getCol", "amount", false, "sum"), 
     $footerRow = $(this.grid.sDiv).find("tr.footrow"), 
     localData = $this.jqGrid("getGridParam", "data"), 
     totalRows = localData.length, 
     totalSum = 0, 
     $newFooterRow, 
     i; 

    $newFooterRow = $(this.grid.sDiv).find("tr.myfootrow"); 
    if ($newFooterRow.length === 0) { 
     // add second row of the footer if it's not exist 
     $newFooterRow = $footerRow.clone(); 
     $newFooterRow.removeClass("footrow") 
      .addClass("myfootrow ui-widget-content"); 
     $newFooterRow.children("td").each(function() { 
      this.style.width = ""; // remove width from inline CSS 
     }); 
     $newFooterRow.insertAfter($footerRow); 
    } 
    $this.jqGrid("footerData", "set", {invdate: "Total (page):", amount: sum}); 

    // calculate the value for the second footer row 
    for (i = 0; i < totalRows; i++) { 
     totalSum += parseInt(localData[i].amount, 10); 
    } 
    $newFooterRow.find(">td[aria-describedby=" + this.id + "_invdate]") 
     .text("Grand Total:"); 
    $newFooterRow.find(">td[aria-describedby=" + this.id + "_amount]") 
     .text($.fmatter.util.NumberFormat(totalSum, $.jgrid.formatter.number)); 
} 

कोड में मैंने कॉलर invdate और amount में अतिरिक्त जानकारी सेट की है।

+0

अच्छा जवाब @ ओलेग, लेकिन थोड़ा देर हो चुकी है .. मैंने पहले से ही एक (गंदा) कामकाज बनाया है। मैं केवल एक पाद लेख बना रहा हूं और प्रत्येक सेल में टैग से घिरे दो मान हैं और फिर दो सीज़र पंक्तियों का दृश्य प्रभाव रखने के लिए कुछ सीएसएस का उपयोग किया जाता है। मैं इस जवाब को स्वीकार कर रहा हूं और देखता हूं कि मुझे अपना कोड बदलने के लिए समय मिलता है या नहीं। यह जवाब केवल ओलेग से आया था, मैंने आपके द्वारा पोस्ट किए गए सभी jqgrid उत्तरों को पढ़ा है। मैं उन सभी उत्तरों के लिए भी आपको धन्यवाद देना चाहता हूं। – Yasser

+0

@Yasser: आपका स्वागत है! – Oleg