2012-08-07 15 views
8

Korzystając z GridView DevExpress, chciałbym wywołać zdarzenie (klienta), gdy zaznaczona jest komórka (lub po prostu kliknięta).DevExpress MVC GridView - Jak uzyskać zdarzenie click komórek

Istnieje już sposób na uzyskanie zdarzeń kliknięcia dla całego wiersza, ale ani błahostka, ani dokumentacja nie daje mi żadnej wskazówki, jak to osiągnąć w przypadku komórek.

To jest to, co mam do wierszy:

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

co spowoduje funkcję javascript OnGridRowDblClick nazywać, gdy wiersz jest podwójnym kliknięciu. Idealnie powinno być coś podobnego

settings.ClientSideEvents.CellClick = "OnCellClick";

Jednak to nie istnieje, ani nie mogę znaleźć niczego do osiągnięcia tego celu.

Odpowiedz

12

Jest możliwe, aby dołączyć wymaganą obsługi po stronie klienta indywidualnego przez Datacell obsługi GridViewSettings.HtmlDataCellPrepared zdarzenie:

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

Jesteś życie wygaszacz! Ponieważ wszystkie elementy są generowane, nie znalazłem też sposobu na ustawienie zdarzeń onclick. Poza tym pozwala mi to umieszczać je tylko na komórkach, gdzie jest to właściwe, ponieważ handler pozwala również na pewną logikę. Dzięki! –

+0

To nie działa, gdy 'myGridView.StartEditRow()' jest wywoływana po kliknięciu w wiersz. Jak uzyskać zdarzenie kliknięcia komórki nawet po wprowadzeniu trybu edycji? –

Powiązane problemy