2012-08-07 16 views
8

DevExpress के ग्रिड व्यू का उपयोग कैसे करें, मैं सेल (जब बस क्लिक किया जाता है) पर एक (क्लाइंटसाइड) ईवेंट ट्रिगर करना चाहता हूं।डेवएक्सप्रेस एमवीसी ग्रिड व्यू - सेल क्लिक इवेंट

पहले से ही पूरी पंक्ति के लिए क्लिक ईवेंट प्राप्त करने का एक तरीका है, लेकिन न तो चारों ओर झुकाव और न ही दस्तावेज मुझे कोशिकाओं के लिए इसे प्राप्त करने के लिए कोई संकेत देता है।

यह है कि मैं क्या पंक्तियों के लिए है: जब एक पंक्ति डबल क्लिक किया है

Html.DevExpress().GridView(settings => 
{ 
    // removed a lot of code here 
    settings.ClientSideEvents.RowDblClick = "OnGridRowDblClick"; 
}).Bind(Model).GetHtml() 

कौन सा जावास्क्रिप्ट समारोह OnGridRowDblClick कारण होगा कहा जाता है। आदर्श रूप में वहाँ की तरह

settings.ClientSideEvents.CellClick = "OnCellClick";

कुछ बहरहाल, यह मौजूद नहीं है हो सकता है, और न ही मैं इस लक्ष्य को हासिल करने के लिए कुछ भी पा सकते हैं।

उत्तर

12

यह से निपटने के द्वारा एक व्यक्ति DataCell के लिए आवश्यक क्लाइंट साइड हैंडलर संलग्न करने के लिए संभव है घटना GridViewSettings.HtmlDataCellPrepared:

function OnCellClick(visibleIndex, fieldName) { 
    alert(visibleIndex + " " + fieldName); 
} 


@Html.DevExpress().GridView(settings => { 
    ... 
    settings.HtmlDataCellPrepared = (sender, e) => { 
     e.Cell.Attributes.Add(
      "onclick", 
      string.Format("OnCellClick('{0}', '{1}');", e.VisibleIndex, e.DataColumn.FieldName) 
     ); 
    }; 

}).Bind(Model).GetHtml() 
+0

आप एक जीवन रक्षक हो! चूंकि तत्व सभी उत्पन्न होते हैं, इसलिए मुझे ऑनक्लिक-इवेंट्स सेट करने का कोई तरीका नहीं मिला। इसके अलावा, यह मुझे केवल उन कोशिकाओं पर रखने की इजाजत देता है जहां यह उचित है क्योंकि हैंडलर कुछ तर्क होने की अनुमति भी देता है। धन्यवाद! –

+0

यह काम नहीं करता है अगर 'myGridView.StartEditRow() 'पंक्ति क्लिक पर कॉल किया जाता है। संपादन मोड दर्ज करने के बाद भी सेल क्लिक ईवेंट कैसे प्राप्त करें? –

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