2014-06-13 9 views
6

के भीतर एक हाइपरलिंक लागू करना यह मेरा पहला समय डाटाग्रिड्स के साथ काम कर रहा है, इसलिए कृपया अस्पष्ट कुछ भी माफ कर दें।एक डोजो डाटाग्रिड

मेरे पास जेसन टेक्स्ट है जो एक डोजो डाटाग्रिड (dojox.grid.DataGrid) में लागू किया जा रहा है।

var jsonStore = new dojo.data.ItemFileWriteStore({ url: "xAgent.xsp"}); 
    var layout = [ 
    {cells:[ [ 
     {field:'firstname', name:'First'}, 
     {field:'lastname', name:'Last'}, 
     {field:'policy', name:'Policy'}, 
     {field:'lastaccessed', name:'Last Accessed'} 
     ] ], noscroll:false 
    } 
    ]; 

    grid = new dojox.grid.DataGrid({ 
    store: jsonStore, 
    structure: layout, 
    rowsPerPage: 50, 
    autoHeight: 50 
    }, '#{id:gridNode}'); 
grid.startup(); 

ग्रिड में ही बिल्कुल ठीक बनाई गई है और के रूप में वांछित सभी डेटा प्रदर्शित किया जाता है, लेकिन मैं क्षेत्र ('नीति' फ़ील्ड विशिष्ट होना) एक और पेज की ओर से जोड़ने के लिए में से एक के लिए करना चाहते हैं। जब मैं रीडायरेक्ट करता हूं तो पॉलिसी नंबर का उपयोग अगले पृष्ठ में किया जाएगा, तो मुझे 'पॉलिसी' फ़ील्ड के भीतर जानकारी शामिल करने की आवश्यकता है।

दूसरे शब्दों में, मैं अपनी तालिका के भीतर सभी नीति फ़ील्ड चाहता हूं ताकि वे अपना स्वयं का अनन्य बाहरी लिंक प्राप्त कर सकें जिसमें उस संबंधित क्षेत्र से पॉलिसी नंबर होगा। ऐसा करने का सबसे आसान तरीका मैं लेआउट वैरिएबल को बदलकर कर सकता हूं जो डेटाग्रिड के संरचना पैरामीटर में फ़ीड करता है, लेकिन एक आसान तरीका हो सकता है। अगर किसी के पास कोई विचार है तो मैं बहुत आभारी रहूंगा।

अग्रिम धन्यवाद।

+0

मैं लगभग सकारात्मक है कि इस किया जा सकता है कर रहा हूँ। आप ग्रिड के लिए एक ऑनक्लिक ईवेंट बना सकते हैं, और वर्तमान पंक्ति से डेटा तक पहुंच सकते हैं। यहां देखें http://xcellerant.net/ और मुझे लगता है कि आपको लगता है कि ब्रैड पर उस पर एक पोस्ट है। मैंने इसे स्वयं इस्तेमाल किया है। –

उत्तर

4

आप ग्रिड के अंदर लिंक, डोजो बटन आदि बनाने के लिए फॉर्मेटर का उपयोग कर सकते हैं।

फ़ॉर्मेटर एक जावास्क्रिप्ट फ़ंक्शन है जिसे सेल में दिखाया जाने वाला मान देता है। डेटा स्टोर से मूल्य फ़ंक्शन के पैरामीटर के रूप में पास किया जाता है। पृष्ठ में डाला गया लौटाया गया मूल्य कोई भी कानूनी HTML या यहां तक ​​कि एक डिजीट विजेट भी हो सकता है।

तो आपके मामले में, नीति स्तंभ

{field:'policy', name:'Policy', formatter: createLink}, 

करने के लिए एक फ़ॉर्मेटर जोड़ने तो आवश्यक बाहरी लिंक के साथ समारोह परिभाषित करते हैं। उदाहरण के लिए:

function createLink(data){ 
    return ("<a href=policyinfo.jsp?policy="+data+">"+data+"</a>"); 
} 

संदर्भ: http://dojotoolkit.org/reference-guide/1.10/dojox/grid/DataGrid.html#id3

+0

आपकी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। क्या "फ़ील्ड" निर्दिष्ट मान के संदर्भ में कोई तरीका है? मेरे जेसनस्टोर में "नीति" जैसी कुछ शामिल है: "0101" और इसलिए अपनी विधि का उपयोग करने के लिए मुझे किसी भी तरह से "नीति" फ़ील्ड से फ़ंक्शन createLink में जानकारी प्राप्त करने की आवश्यकता होगी। मुझे यह विचार पसंद है, लेकिन फिर मुझे इस मुद्दे का सामना करना पड़ रहा है कि मैं नहीं देखता कि मैं इस क्षेत्र को कैसे संदर्भित कर सकता हूं। यदि यह "फॉर्मेटर: createLink (field.getValue())" के रूप में सरल था, तो यह सही होगा। क्या आप ऐसा करने के तरीके के बारे में जानते हैं? – cards

+2

@ उपयोगकर्ता 3739102 हां। डेट स्टोर से मूल्य फॉर्मेटर फ़ंक्शन के पैरामीटर के रूप में पास किया जाता है। उदाहरण में यह 'डेटा' है। लेआउट में पैरामीटर निर्दिष्ट करने की कोई आवश्यकता नहीं है। यह पूरी तरह से पारित किया जाएगा (?)। – robin

+0

बहुत बढ़िया, यह काम करता है! आप एक जीवन बचतकर्ता हैं, बहुत बहुत धन्यवाद! – cards

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