2012-11-18 18 views
5

में चुनी गई पहली पंक्ति दिखाएं मैं एक एमवीसी 4 प्रोजेक्ट पर काम कर रहा हूं जहां मैं केंडो ग्रिड का उपयोग करता हूं। मैं चाहता हूं कि उपयोगकर्ता डिफ़ॉल्ट रूप से चयनित ग्रिड की पहली पंक्ति देखें। मेरे पास कई पंक्तियां हैं इसलिए मैं पेजिंग का उपयोग करता हूं। जब उपयोगकर्ता पृष्ठ 2,3 पर जाता है, ... 40 आदि मैं भी चयनित प्रत्येक पृष्ठ की पहली पंक्ति देखना चाहता हूं। नीचे मेरा कोड है जहां मैं ग्रिडहमेशा केंडो ग्रिड

<%: Html.Kendo().Grid(Model) 
      .Name("AuthorisationsGrid") 
      .Columns(columns => 
      { 
       columns.Bound(p => p.Mis).Title("MIS").Width(80); 
       columns.Bound(p => p.AuthorisationSerialNumber).Title("ΑΑ Προέγκρισης"); 
      }) 
      .Pageable() 
      .Sortable() 
      .Filterable() 
      .Selectable(s => s.Mode(GridSelectionMode.Single)) 
      .Resizable(resize => resize.Columns(true)) 
      .DataSource(dataSource => dataSource 
       .Ajax() 
       .ServerOperation(false) 
       .Model(model => model.Id(p => p.AuthorisationSerialNumber)) 
       .Model(model => model.Field(p => p.Mis)) 
       .Batch(true) 
       .Read(read => read.Action("AuthorisationsPartial", "UserFilesDashboard")))%> 

मैं उपर्युक्त व्यवहार कैसे प्राप्त कर सकता हूं? शायद jQuery उपयोगी हो सकता है (लेकिन मुझे jQuery के बहुत कम ज्ञान है)। किसी भी मदद की सराहना की। पहले ही, आपका बहुत धन्यवाद।

उत्तर

4

दरअसल आप ग्रिड के tbody में पहली टीआर तत्व को कश्मीर राज्य से चयनित वर्ग को जोड़ने के लिए ग्रिड और jQuery के dataBound घटना का उपयोग कर सकते हैं।

यहाँ एक उदाहरण है:

$('#GridName').data().kendoGrid.bind('dataBound',function(e){ 
    this.element.find('tbody tr:first').addClass('k-state-selected') 
}) 
+1

लेकिन यह वास्तव में इसे चुन नहीं रहा है – CMS

3

इसकी भी संभव यह एक और तरीके से करना

विधि 1

बाइंड के लिए के माध्यम से

<div data-bind="source: mydataSource, events: { 
    dataBound: onDataBound 
}" > 

onDataBound घटना के लिए ग्रिड एमवीवीएम या

के माध्यम से 210
("#gridName").data("kendoGrid").dataBound(..) (not exact) 

विधि 2

databound: function() { 
    var uid = data[0].uid; 
    var row = roomGrid.table.find('tr[data-uid="' + uid + '"]'); 
    roomGrid.select(row); 
} 

के अंदर यह मेरे मामले में काम करता है। आशा करता हूँ की ये काम करेगा।

0
$('#gridName').data().kendoGrid.bind('dataBound', function (e) { 
      this.select("tr:eq(1)"); 
      //this.element.find('tbody tr:first').addClass('k-state-selected'); 
     }) 
और अधिक विस्तार के लिए

कृपया लिंक http://docs.kendoui.com/api/web/grid#methods-select

+0

क्या आप यह समझा सकते हैं कि यह कोड कैसे काम करता है? कोड-केवल उत्तर (समय पर स्वीकार किए जाने पर) कुछ समझकर कुछ सुधार करके सुधार किया जा सकता है कि यह क्या करता है या यह कैसे काम करता है। धन्यवाद! –

0

नीचे देखें से कोड अद्यतन करने के बाद:

$('#GridName').data().kendoGrid.bind('dataBound',function(e){... 

रहे हैं:

$('#GridName').data("kendoGrid").bind('dataBound', function (e) {... 

अब यह ठीक हो गई है और नीचे अंतिम कूट चल रहा है:

$(function() { 
    $('#GridMaster').data("kendoGrid").bind('dataBound', function (e) { 
     this.element.find('tbody tr:first').addClass('k-state-selected') 
    }); 
}); 


नोट: अगर वहाँ ग्रिड पर रिकॉर्ड प्राप्त करने के लिए एक समस्या है, ग्रिड परिभाषा के बाद के बजाय पहले ग्रिड परिभाषा इस स्क्रिप्ट का उपयोग।

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