2009-11-21 13 views
5

कैसे NaN के बजाय खाली jqGrid कोशिकाओं में स्थापित करने के लिए? फॉर्मेटर का उपयोग करना? क्या कोई उदाहरण है?रिक्त जब NaN jqGrid कोशिकाओं में

+2

http://catb.org/~esr/faqs/smart-questions.html#beprecise –

+0

ऊपर करने के लिए +1। राउफ - क्या आप अपनी समस्या के बारे में अधिक जानकारी प्रदान कर सकते हैं? कुछ कोड नमूने शायद भी मदद करेंगे। –

+0

धन्यवाद जस्टिन! फॉर्मेटर के साथ jqgrid पर डेटाबेस संख्यात्मक डेटा प्रदर्शित करना: Colmodel में 'मुद्रा' DBNull मानों के लिए ठीक काम करता है। लेकिन जब मूल्य डीबीएनयूएल शब्द 'NaN' jqgrid सेल में प्रकट होता है। सवाल यह है कि 'NaN' से कैसे बचें और इसके बजाय खाली (स्थान) डालें। – raouf

उत्तर

0

सर्वर पर, इससे पहले कि आप XML/JSON/जो कुछ भी, DBNull मान एक रिक्त स्ट्रिंग के बराबर निर्धारित करने की कोशिश के रूप में अपने डेटा वापस।

वैकल्पिक रूप से, अगर यह 0 के रूप में शून्य मूल्यों को प्रदर्शित करने स्वीकार्य है, तो आप अपने एसक्यूएल इन पंक्तियों के साथ संशोधित कर सकते हैं:

SELECT IsNull(my_amount, 0) 
+1

मुझे लगता है कि समाधान colmodel के formatter विकल्प में है। दो तरीके हैं: पूर्वनिर्धारित और कस्टम फॉर्मेटर। मेरे मामले में, मैं पूर्वनिर्धारित 'मुद्रा' फ़ॉर्मेटर उपयोग करना चाहते हैं, लेकिन संभावना के साथ बजाय खाली लौटने के लिए की 'NaN' जब मान शून्य है। ऐसा लगता है कि मेरे custum मुद्रा फ़ॉर्मेटर फ़ंक्शन को फिर से लिखने से बचने का कोई तरीका नहीं है। आपको फिर से जस्टिन धन्यवाद। – raouf

+0

कोई समस्या नहीं, शुभकामनाएँ! –

0

मैं कस्टम फ़ॉर्मेटर पुनर्लेखन नहीं होता - लेकिन यह ओवरराइड (या एक नया बनाने के एक)! इस तरह, जब jQgrid का एक नया संस्करण आता है, तो आप अपने कस्टम रैपर को ओवरराइट नहीं करते हैं।

उदाहरण के लिए, मेरी उन मूल्य देखने के लिए अगर यह 0 है नहीं करना चाहते, तो मैं ऐसा करते हैं:

$.fn.fmatter.currency = function (cellval, opts) { 
    if (cellval == 0) { 
     return ''; 
    } 
    var op = $.extend({},opts.currency); 
    if(!isUndefined(opts.colModel.formatoptions)) { 
     op = $.extend({},op,opts.colModel.formatoptions); 
    } 
    if(isEmpty(cellval)) { 
     return op.defaultValue; 
    } 
    return $.fmatter.util.NumberFormat(cellval,op); 
}; 

लेकिन मैं यह भी यह कह सकते हैं:

$.fn.fmatter.currencyNoZero 

में अपने मामला है, मैं यह कर जाएगा:

$.fn.fmatter.currency = function (cellval, opts) { 
    if (cellval == null) { 
     return ''; 
    } 
    var op = $.extend({},opts.currency); 
    if(!isUndefined(opts.colModel.formatoptions)) { 
     op = $.extend({},op,opts.colModel.formatoptions); 
    } 
    if(isEmpty(cellval)) { 
     return op.defaultValue; 
    } 
    return $.fmatter.util.NumberFormat(cellval,op); 
}; 
6

यह वास्तव में पुराना है लेकिन jqGrid प्रलेखन एक आसान जवाब नहीं था और इस सवाल फाई को खींचती जब मैं एक ही जवाब की तलाश में था तो Google परिणामों में आरएसटी।

मैं जब एक पूर्णांक इस कोड का उपयोग के लिए पूर्वनिर्धारित फ़ॉर्मेटर विकल्प का उपयोग कर एक 0 के बजाय एक खाली सेल प्रदर्शित करने के लिए कर रहा था:

{ name: 'Quantity', formatter: 'integer', formatoptions: { defaultValue: ''} } 

defaultValue बस खाली करने के लिए निर्धारित है।

+1

ईश्वर का शुक्र है कि कोई "वास्तव में" पुराना प्रश्न जवाब देने वाला था :)। आपने 3 साल बाद भी अपना दिन बचाया। – elrado

+0

आभारी समूह में एक और जोड़ें। :) –