2013-03-06 26 views
5

Czy istnieje sposób programowej zmiany liczby wyświetlanych wierszy bez konieczności ręcznego wybierania z listy rozwijanej?jQuery datatables, programowa zmiana liczby wierszy wyświetlanych

Wiem, jak zmienić domyślną liczbę wierszy już. Kiedy tabela ładuje się po raz pierwszy, chcę, aby załadowała wszystkie wiersze, a następnie "odświeżyła" tabelę, aby wyświetlić tylko pierwsze 10 wierszy. Ale chcę odświeżyć tabelę programowo, zamiast wybierać numer z listy rozwijanej.

Mój problem polega na tym, że jeśli domyślna liczba wierszy jest mniejsza niż całkowita liczba wierszy, wtedy gdy ukryte wiersze są wyświetlane po zmianie numeru rozwijanego lub przez stronicowanie przez wiersze, te wiersze nie mają wszystkich css ani funkcji js, które przypisałem do wszystkich wierszy. Z jakiegoś powodu tylko domyślne pokazywane wiersze mają całą funkcjonalność, a wiersze później pokazują, że nie.

Myślę, że najprostszym sposobem rozwiązania tego problemu przy użyciu najmniejszej ilości kodu jest domyślne załadowanie wszystkich wierszy, a następnie programowa zmiana liczby wyświetlanych wierszy, tak aby wyświetlać tylko 10 pierwszych.

Dzięki za pomoc.

+2

co jest pokazywanie wpisy? Czy chcesz ustawić wartość drop-dropa? –

+0

Twoje pytanie nie zawiera wystarczających informacji, abyśmy mogli udzielić prawidłowej odpowiedzi. Dodaj odpowiedni kod i opisz szczegółowo występujący problem. –

+0

Przeformułuj swoje pytanie, abyśmy mogli Ci pomóc. – anacarolinats

Odpowiedz

5

Na początku należy ustawić DataTables jako zmienna:

var oTable = $('#some_selector').dataTable({ 
    //some properties 
}) 

a następnie można skonfigurować ustawienia w locie:

var oSettings = oTable.fnSettings(); 
oSettings._iDisplayLength = 5; 

i po prostu Ponownie narysuj swój DataTables z nowymi ustawieniami:

oTable.fnDraw(); 
+1

dziękuję, działało jak czar dla mnie. Zastanawiam się, dlaczego nie został wybrany przez pytającego. –

0

Poprzednia odpowiedź nie działa dla mnie, może to być, że używam nowszej wersji DT. ustawić displayLength do 20 to pracował dla mnie:

table.context["0"]._iDisplayLength = "20"; 
table.draw(); 

Używam DataTables 1.10.10

Powiązane problemy