ich die CreateEventLink Methode der ComponentResources Klasse bin mit behalten einen Link zu einem Löschereignis auf meiner Seite erstellen die folgenden genannte Userlist mit:fnStandingRedraw Aufruf der aktuelle Paginierung Einstellungen in Datentabellen mit javaScriptSupport.addInitializerCall
resources.createEventLink("delete", user.getUserId()).toURI();
Die UserList-Seite verwendet Datentabellen, um eine Liste der Benutzerdaten und einen Löschlink zu erstellen. Wenn auf den Link zum Löschen geklickt wird, wird das Lösch-Ereignis auf derselben Seite aufgerufen und alle sind zufrieden.
Das Problem ist die Datentabelle geht zurück auf die erste Seite der Datensätze nach einem Benutzer gelöscht wird. Wenn ich beispielsweise auf Seite 5 meiner Datentabelle auf der Seite Benutzerliste bin und auf Löschen klicke, bleibt sie auf der Seite Benutzerliste, aber meine Datentabelle wird auf die erste Seite zurückgesetzt.
Nach einigen Recherchen entdeckte ich haved, dass das fnStandingRedraw Plugin von Datentabellen wird dieses Problem beheben: http://datatables.net/plug-ins/api
Geht man durch die Dokumentation die ich gelernt habe, dass ich verwenden sollte:
javaScriptSupport.addInitializerCall("fnStandingRedraw", "");
rufen Sie die folgende in js-Datei über eine Import-Notation:
Tapestry.Initializer.fnStandingRedraw = function(oSettings) {
//redraw to account for filtering and sorting
// concept here is that (for client side) there is a row got inserted at the end (for an add)
// or when a record was modified it could be in the middle of the table
// that is probably not supposed to be there - due to filtering/sorting
// so we need to re process filtering and sorting
// BUT - if it is server side - then this should be handled by the server - so skip this step
if(oSettings.oFeatures.bServerSide === false){
var before = oSettings._iDisplayStart;
oSettings.oApi._fnReDraw(oSettings);
//iDisplayStart has been reset to zero - so lets change it back
oSettings._iDisplayStart = before;
oSettings.oApi._fnCalculateEnd(oSettings);
}
//draw the 'current' page
oSettings.oApi._fnDraw(oSettings);
};
jedoch habe ich den Fehler:
Uncaught TypeError: Cannot read property 'bServerSide' of undefined
Tapestry.Initializer.fnStandingRedrawhelpdesk.js:16
$.extend.inittapestry-jquery.js:32
jQuery.extend.eachjquery-1.6.2.js:655
$.extend.inittapestry-jquery.js:26
jQuery.extend.eachjquery-1.6.2.js:649
$.extend.inittapestry-jquery.js:18
(anonymous function)list:70
jQuery.extend._Deferred.deferred.resolveWithjquery-1.6.2.js:1008
jQuery.extend.readyjquery-1.6.2.js:436
DOMContentLoadedjquery-1.6.2.js:915
Jede Anleitung würde am meisten geschätzt werden ... Vielen Dank im Voraus!