2015-10-15 13 views
8

मुझे इसी तरह के शीर्षक के साथ पोस्ट मिली लेकिन मैं अभी भी अपनी समस्या का समाधान नहीं कर सकता। निश्चित रूप से मैं कुछ गलत कर रहा हूँ।प्रोग्रामेटिक रूप से केंडो ग्रिड पंक्ति का चयन करें

change: function (e) { 
      refresh(this); 
     } 

यह मैं कैसे कॉन्फ़िगर किया गया "बदलाव" घटना है:

केंडो ग्रिड विन्यास में कुछ समारोह जो संदर्भ (ग्रिड) और पढ़ने चयनित पंक्ति लेने की है।

समारोह में "ताज़ा (ग्रिड)" मैं निम्नलिखित तरीके पर चयनित पंक्ति हो रही है:

refresh: function (grid) {   
    var selectedRows = grid.select(); 
    var selectedRow = grid.dataItem(selectedRows[0]); 
    var id = selectedRow.Id; 
} 

यह दृष्टिकोण सही काम करता है जब मैं ग्रिड पंक्ति स्वयं चुनते हैं। लेकिन जब मैं प्रोग्राम का चयन करता हूं तो "selectRow" चर शून्य है।

मैं निम्नलिखित तरीके पर प्रोग्राम के का चयन कर रहा हूँ:

var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row); 

मैं ऊपर में दुख की बात है, पिछले "ताज़ा (ग्रिड)" विधि चर selectedRow में अशक्त हो जाएगा के रूप में।

क्या किसी के बारे में कुछ राय है? ऐसा क्यों हुआ?

धन्यवाद

उत्तर

12

ग्रिड प्रलेखन "select" विधि स्वीकार करता है "स्ट्रिंग" पैरामीटर (चयनकर्ता) या jQuery तत्व के अनुसार। यही कारण है कि यदि आपको पंक्ति का सही चयन करने की आवश्यकता है तो आपको अपने वर्तमान कोड को निम्नानुसार संशोधित करना चाहिए:

var grid = $("#grid").data("kendoGrid"); 

//if you are using the "pageable" option of the grid 
//you should get the visible rows using the .view() method 
var models = grid.dataSource.data(); 

var model = rows[rows.length - 1]; 
var lastRowUid = model.uid; 

//find the target row element: 
var row = grid.table.find("[data-uid=" + lastRowUid + "]"); 

grid.select(row); 
+0

धन्यवाद, केवल पंक्तियों को बदलने के लिए आवश्यक परिवर्तन [पंक्तियों। लम्बाई -1]; मॉडल [पंक्तियों। लम्बाई - 1] के लिए; – s1cart3r

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