2017-03-08 8 views
1

Ich habe ein "Bootgrid" -Grid mit Json-Daten (nicht mit Ajax).Jquery Bootgrid - Ändern der aktuellen Seite programmgesteuert

Paginierung Schaltflächen funktionieren, aber ich möchte die aktuelle Seite programmgesteuert ändern.

So etwas wie $ ("# grid"). Bootgrid(). SetCurrentPage (100);

Ich sehe nicht die API bietet eine Methode für das so wie kann ich es erreichen?

Antwort

2

Wie Sie gesehen haben, bietet Bootgrid keine integrierte Möglichkeit, die aktuelle Seite noch zu ändern. Sie können es jedoch erweitern.

zu einem gewissen .js Datei auf Ihrer Seite Fügen Sie diese Sie laden:

$.fn.bootgrid.Constructor.prototype.setCurrentPage = function (page) { 
    $(this).find('li.page-' + this.current).removeClass('active'); 
    $(this).find('li.page-' + page).addClass('active'); 
    this.current = page; 
    return this; 
} 

Sie können es in der gleichen .js fügen Sie bootgrid und Lastdaten


zu bauen verwenden

Dann können Sie es in Ihrem Raster verwenden, wie folgt:

// create the grid... 
var grid = $("#grid-data").bootgrid({ 
    ajax: false 
}); 

// add some rows with json data 
grid.bootgrid('append', 
[ 
    { 
     "id": 19, 
     "sender": "[email protected]", 
     "received": "2014-05-30T22:15:00" 
    }, 
    { 
     "id": 14, 
     "sender": "[email protected]", 
     "received": "2014-05-30T20:15:00" 
    }, 
    // ....many rows 
]); 

// call your custom method, to change to page 3 
grid.bootgrid('setCurrentPage', 3); 
// calling sort is just a workaround, so bootgrid reloads itself... 
grid.bootgrid('sort'); 

Also im Grunde, füge ich eine neue Methode zu dessen Prototyp, die die active Taste ändern (nur für Styling-Zwecke) und current Eigenschaft bootgrid des ändern.

nach der Seitenzahl zu ändern, rufen wir die Methode sort als Behelfslösung für Kraft bootgrid seine Daten neu zu laden, ohne die Seitennummer Zurücksetzen, wie reload würde.


Überprüfen this JSFiddle ich erstellt. Versuch es!!

+1

Danke! Ich mag diese Lösung wirklich. Ich änderte schließlich die bootgrid.js um eine showPage() -Methode, die im Grunde eine load() -Kopie aber die aktuelle Zeile auf die angegebene – Rombus

+0

Oh, das ist schön, dachte ich über die Bereitstellung dieser Option als Alternative, aber nehmen Sie zur Kenntnis Die verkleinerte Version wird nicht funktionieren (es sei denn, Sie minimieren es selbst und ersetzen es oder verwenden Sie nicht die verkleinerte Version). In einer anderen Antwort zu einem anderen Feature schlug ich vor, etwas wie 'Grid.prototype.doSomething = function()' in 'bootgrid.js' zu machen. Ich nehme an, dass sie keine neuen Versionen veröffentlichen werden, also haben Sie möglicherweise keine Probleme beim Aktualisieren des Pakets und vergessen, diesen Code erneut hinzuzufügen. – Alisson

Verwandte Themen