2013-05-15 22 views
6

Mam obecnie sieć Kendo-UI. Ma kilka kolumn, w których użytkownik może sortować, działa świetnie. Mam również link do szczegółów w każdym wierszu, więc jeśli użytkownik kliknie w ten sposób, przejdzie na stronę szczegółów. Muszę przekazać bieżący sort do strony ze szczegółami jako wartość. Jak mogę uzyskać obecny rodzaj? czy jest jakieś wydarzenie, które mogę powiązać? DziękiJak zdobyć sortowanie siatki kendo ui?

+0

Jeśli link jest to, co wyzwala pokazujące szczegóły, dlaczego nie dostać aktualny rodzaj tam? – OnaBai

+1

, ale skąd mam wiedzieć, który z kliknięć został kliknięty? czy jest malejąca czy rosnąca? tj. jeśli mam 4 kolumny. Sortuję w kolumnie 3 opis. skąd mam to wiedzieć? – user2206329

+0

Proszę, sprawdź moją odpowiedź – OnaBai

Odpowiedz

11

Możesz uzyskać konfigurację sortowania, kiedy chcesz użyć sort method.

Przykład: Bycie grid z id Twojej sieci. Do:

// Get the grid object 
var grid = $("#grid").data("kendoGrid"); 
// Get the datasource bound to the grid 
var ds = grid.dataSource; 
// Get current sorting 
var sort = ds.sort(); 
// Display sorting fields and direction 
if (sort) { 
    for (var i = 0; i < sort.length; i++) { 
     alert ("Field:" + sort[i].field + " direction:" + sort[i].dir); 
    } 
} else { 
    alert("no sorting"); 
} 
+0

, dokładnie to czego szukałem .. dziękuję za to. Czy wiesz, jak uzyskać wartość numeru wiersza klikniętego wiersza? jeśli kliknę w 5. wiersz, aby ostrzec 5 .. lub gdy przejdę na czwartą stronę i kliknę na piątą pozycję, aby ostrzec 45? – user2206329

+1

Jako ogólna rekomendacja nie powinieneś zadawać nowych pytań w komentarzu, ponieważ szanse na to, aby inni je przeczytali, są dość niskie. Powiedział, że powinieneś użyć 'dataSource.indexOf' elementu odpowiadającego klikniętemu wierszowi, i znasz wiersz używający czegoś takiego jak' grid.dataItem ($ (this) .closest ("tr")); 'wewnątrz handler'a zdarzenia "kliknięcie". – OnaBai

+0

Fajnie, jedyny problem z tym, że po zastosowaniu tego rodzaju, identyfikator jest nadal taki sam. Spodziewałbym się, że pierwszy element będzie indeksem 1. Ale kiedy elementy są posortowane według desc, pierwszy element to 1200. Po prostu chcę numer wiersza dla każdego wiersza niezależnie od sortowania. dzięki za to opublikuję to jako nową dyskusję. Ale tak trudno jest opublikować pytanie na temat przepływu stosu. Powtarza się, że pytanie nie przejdzie ich weryfikacji. – user2206329

0

Wpadłem dzisiaj na tę potrzebę i dowiedziałem się, że wydarzenie jest już obecne w 2016 r. W wersji R3 (2016.3.914).

Przykład użycia:

<div id="grid"></div> 
<script> 
    $("#grid").kendoGrid({ 
    columns: [ 
     { field: "name" }, 
     { field: "age" } 
], 
dataSource: { 
    data: [ 
     { id: 1, name: "Jane Doe", age: 30 }, 
     { id: 2, name: "John Doe", age: 33 } 
    ], 
    schema: { 
     model: { id: "id" } 
    } 
    }, 
    sortable: true, 
    sort: function(e) { 
     console.log(e.sort.field); 
     console.log(e.sort.dir); 
    } 
    }); 
</script> 

Patrz: http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-sort