2013-07-19 3 views
6

मुझे केंडोग्रिड में एक विशिष्ट पंक्ति का चयन करने की आवश्यकता है, लेकिन डेटा-यूआईडी द्वारा नहीं (जैसे कि ग्रिड डेटा स्रोत फिर से लोड होने पर डेटा-यूआईडी बदल जाता है) लेकिन पंक्ति itemID द्वारा। मैंने पोस्ट देखी लेकिन वे केवल यूआईडी द्वारा पंक्ति का चयन करते हैं, जो मुझे चाहिए, मुझे वास्तव में HTML5 एप्लिकेशन को पुनरारंभ करने की आवश्यकता है और जब ग्रिड लोड हो जाता है, तो एक विशिष्ट आइटम का चयन किया जाना चाहिए। यह मैं क्या देख रहा हैडेटा आइटम आईडी द्वारा केंडो ग्रिड में एक पंक्ति का चयन कैसे करें?

डेमो है: jsfiddle.net/rusev/qvKRk/3/

उदा ऑब्जेक्ट में OrderID as ID है, और हर बार ग्रिड लोड होने पर, यह वही होगा, uid के विपरीत, मैं जानना चाहता हूं कि मैं uid के बजाय OrderID के साथ एक पंक्ति का चयन कैसे कर पाऊंगा।

उत्तर

0

मेरे आसपास काम करने के लिए एक काम था, सभी पंक्तियों के माध्यम से जाना था और जांचें कि कौन सी पंक्ति मॉडल में पैरामीटर के बराबर आईडी है, और उसके बाद उस पंक्ति डेटा-यूआईडी प्राप्त करें और डेटा-यूआईडी के माध्यम से आइटम का चयन करें। यह मेरे लिए ठीक काम कर रहा है, क्योंकि कोई सुझाव नहीं था, अब यह बेहतर जवाब है।

+0

कोड कहां है? – BorHunter

+0

@RuiMartins उदाहरण कोड के साथ एक पूर्ण और संक्षिप्त उत्तर प्रदान किया। यदि आप टेलीरिक फ़ोरम चुनते हैं, तो वही जानकारी भी उपलब्ध है। डेटा की सभी पंक्तियों के माध्यम से जाने की जरूरत नहीं है। मान लें कि आप एक मॉडल का उपयोग करते हैं, 'dataSource.get (OrderID)' विधि डेटा आइटम वापस कर देगी: मॉडल आईडी 'id' फ़ील्ड से उपलब्ध है; पंक्ति तत्व का यूआईडी 'uid' फ़ील्ड से उपलब्ध है। पंक्ति तत्व प्राप्त करने के लिए 'डेटा-यूआईडी' विशेषता का प्रयोग करें। – Suncat2000

16

आप कैम मिश्रण पंक्ति itemID और data.uid, मुझे लगता है।

var grid = $("#Grid").data("kendoGrid"); 
var dataItem = $("#Grid").data("kendoGrid").dataSource.get(itemID); 
var row = $("#Grid").data("kendoGrid").tbody.find("tr[data-uid='" + dataItem.uid + "']"); 
+0

अच्छा संक्षिप्त उत्तर। बहुत बढ़िया। – Suncat2000

+0

अभी भी कोई और आसान तरीका नहीं है? –

0

Umais क्या उल्लेख किया है के साथ जा रहे हैं, बेहतर दृष्टिकोण, के बाद से कोई अभी तक के रूप में इस के लिए कार्यक्षमता में बनाया, एक की जरूरत है खोजने के लिए सभी रिकॉर्ड के माध्यम से पुनरावृति करने के लिए किया जाएगा। मेरे द्वारा निर्मित फ़ंक्शन डेटा के पेज होने पर भी काम करेगा। ऐसा करने का एकमात्र अन्य तरीका जिसे मैं ऐसा करने के बारे में सोच सकता हूं वह एक माध्यमिक AJAX कॉल करेगा; लेकिन यह अच्छी तरह से काम करता है। ध्यान दें कि मैंने 2000 से अधिक रिकॉर्ड के साथ इसका परीक्षण नहीं किया है।

var dataGrid = $("#GATIPS").data("kendoGrid").dataSource; 
    var numOfRows = dataGrid.total(); 
    var currentPageSize = dataGrid.pageSize(); 
    dataGrid.pageSize(numOfRows); 
    var dataGridData = dataGrid.data(); 
    for (var i = 0; i < numOfRows; i++) { 
     if (dataGridData[i].uid == e) 
      return dataGridData[i]; 
    } 
    dataGrid.pageSize(currentPageSize); // reset the view 

ई यूआईडी है। हालांकि इसे किसी भी चर के लिए प्रतिस्थापित किया जा सकता है जिसे आपको चेक को प्रतिस्थापित करने की आवश्यकता है।

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