2012-01-15 23 views
14

कैसे प्राप्त करें मैं क्लाइंट पक्ष पर चयनित ग्रिड पंक्ति KeyField मान प्राप्त करने का प्रयास कर रहा हूं;ASPXGridView ClientSideEvents चयनित पंक्ति के KeyField मान

विधि # 1

<ClientSideEvents RowClick="function(s, e) {var key= grid.GetSelectedKeysOnPage()[0];}" /> 
//This gives previous selected rows value everytime 

विधि # 2

<ClientSideEvents RowClick="function(s, e) { grid.GetRowValues(grid.GetFocusedRowIndex(), 'MyKeyFieldName', OnGetRowValues); }" /> 
//This gives previous selected row and also gives an error: "A primary key field specified via the KeyFieldName property is not found in the underlying data source. Make sure.. blabla" But the MyKeyFieldName is true and i dont want to make a callback, i dont want to use this method! 

विधि # 3

<ClientSideEvents RowClick="function(s, e) { grid.GetRowValues(e.visibleIndex, 'MyKeyFieldName', OnGetRowValues); }"> 
//This gives the same result with Method #2 

प्रश्न:

मैं निम्नलिखित कोशिश करते हैं और विभिन्न परिणाम प्राप्त करने के लिए इस्तेमाल है: मैं कैसे गठबंधन कर सकते हैं क्लाइंट RowClick ईवेंट पर कॉलबैक या पोस्टबैक के बिना वर्तमान चयनित पंक्ति का एर कीफिल्ड वैल्यू (पिछला नहीं)?

उत्तर

17

विधि # 2 और # 3

इन दोनों तरीकों सर्वर से एक कॉलबैक आवश्यकता होती है।

सुनिश्चित करें कि आपने ASPxGridView.KeyFieldName प्रॉपर्टी निर्दिष्ट की है जो पंक्ति चयन ऑपरेशन के लिए आवश्यक है।

मैं कॉलबैक या पोस्टबैक के बिना चयनित पंक्ति @ क्लाइंट की कीफिल्ड मान कैसे एकत्र कर सकता हूं?

क्लाइंट साइड ASPxClientGridView.SelectionChanged घटना संभाल;

एक पंक्ति निर्धारित करें जिसे "e.isSelected" संपत्ति के माध्यम से चुना गया है;

क्लाइंट-साइड ASPxClientGridView.GetRowKey विधि के माध्यम से पंक्ति की कुंजी वैल्यू निर्धारित करें।

एक पैरामीटर के रूप "e.visibleIndex" संपत्ति दर्रा:

<ClientSideEvents SelectionChanged="function(s, e) { 
    if (e.isSelected) { 
     var key = s.GetRowKey(e.visibleIndex); 
     alert('Last Key = ' + key); 
    } 
}" /> 
+0

धन्यवाद, लेकिन इस सवाल का जवाब है कि मैं उम्मीद कर रहा हूँ नहीं है। मैं पूछ रहा हूं कि मैं क्लाइंटसाइड रोक्लिक घटना पर नई चुनी गई पंक्ति के कीफील्ड मान को कैसे एकत्र कर सकता हूं? और ASPxClientGridView.GetSelectedKeysOnPage [0] चयन बदलते समय बदल रहा है, यह वही नहीं है। – DortGen

+1

क्या आपने मेरे समाधान की कोशिश की है? इसका परिणाम क्या होता है? – Mikhail

+0

एफवाईआई अगर आप मिखाइल के समाधान का उपयोग करना चाहते हैं; चयन चेंज किए गए ईवेंट का उपयोग करने में समस्या: जब उपयोगकर्ता सॉर्ट या फ़िल्टर करता है; संग्रहीत कुंजी अद्यतन नहीं होती है (चयन परिवर्तन घटना ट्रिगर नहीं होती है) – kite

0
function OnbtnOkClick(s, e) { 
    grid.GetRowValues(grid.GetFocusedRowIndex(), 'FieldName1;FieldName2', OnGetRowValues); 
} 

function OnGetRowValues(values) { 
    var fName1 = values[0]; 
    var fName2 = values[1]; 
    txt1.SetText(fName1); 
} 
1

कैसे 3 आसान चरणों में करने के लिए।

मेरे मामले में, मैं जब उपयोगकर्ता पंक्ति पर क्लिक करता है एक क्षेत्र ('आईडी') ASPxGridView से की सामग्री को प्राप्त करने के लिए ...

  1. पंक्ति क्लिक के लिए ClientSideEvent बनाएँ और (डाल "RowClick चाहते एस, ई); " समारोह में
  2. घटना के तहत दिखाए गए वास्तविक कार्य को नीचे दिखाएं जैसा कि नीचे दिखाया गया है - और यहां मुश्किल हिस्सा है; इंडेक्स प्राप्त करने के लिए GetFocusedRowIndex() का उपयोग न करें क्योंकि यह फोकस इंडेक्स है। E.visibleIndex

    function RowClick(s, e) { 
        // Do callback to get the row data for 'ID' using current row. 
        MyAspxGridView.GetRowValues(e.visibleIndex, 'ID', OnGetRowId); 
    } 
    
  3. अपना इच्छित क्षेत्र प्राप्त करने के लिए अपनी कॉल वापस बनाएं। मुझे 'आईडी' मिल रहा है।

    function OnGetRowId(idValue) { 
        alert('ID: ' + idValue.toString()); 
    } 
    
+0

यद्यपि यहां थोड़ी देर देरी है। आप देरी के आसपास कैसे काम कर सकते हैं? – IyaTaisho

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