Page 1 sur 1

Créer une navigation pour une embedded view en Web

MessagePublié: 11 Fév 2008 à 08:07
par abertisch
Cette méthode remplace les fonctions native de notes:

@DbCommand( "Domino" ; "ViewNextPage" )
@DbCommand( "Domino" ; "ViewPreviousPage" )

qui, on peut le dire, ne fonctionne pas très bien (non non j'ai pas dis du tout... :lol: )

Pour que cela fonction, il faut ajouter dans l'url &start=xx&count=xx

La classe javascript "gup()" peut être utilisée dans d'autre cas car elle permet de lire les paramètres d'une url.

Code : Tout sélectionner
/***************************************************************/
/* Fonction permettant la récupérations des paramètres dans l'URL */
/***************************************************************/
function gup(name){

   name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
   
   var regexS = "[\\?&]" + name + "=([^&#]*)";
   var regex = new RegExp(regexS);
   var results = regex.exec(window.location.href);
   
   if (results == null)
      return "";
   else
      return results[1];
}

MessagePublié: 11 Fév 2008 à 08:14
par abertisch
Et avec cette classe permet de faire la navigation.

Elle a juste besoin d'un champ Notes nommé "TotalHits" qui contient le total des entrées de l'embedded view.

Puis il suffit de créer des Hotspot par exemple et de mettre une des fonctions suivantes:

viewPrevious();
viewNext();
viewFirst();
viewLast();


Code : Tout sélectionner
/***************************************************************/
/* Classe permettant la navigation dans une vue */
/***************************************************************/

var count = gup('count');
var start = gup('start');
var url = window.location.href;

function viewNext(){
var total = parseInt(document.forms[0].elements['TotalHits'].value);
var startnext = parseInt(start) + parseInt(count);

if (startnext > total){return("");}
window.location = url.replace('&start=' + start.toString() + '&', '&start=' + startnext.toString() + '&');
}

function viewPrevious(){
var startnext = parseInt(start) - parseInt(count);

if (parseInt(start) == 1) return("");

if (startnext < 0){startnext = 1;}
window.location = url.replace('&start=' + start.toString() + '&', '&start=' + startnext.toString() + '&');
}

function viewLast(){
var total = parseInt(document.forms[0].elements['TotalHits'].value);
var startnext = parseInt(start)

while ((startnext + parseInt(count)) <= total){
startnext = startnext + parseInt(count);
}

if (total < count) return("");
window.location = url.replace('&start=' + start.toString() + '&', '&start=' + startnext.toString() + '&');
}

function viewFirst(){
var startnext = 1;

if (parseInt(start) == 1) return("");
window.location = url.replace('&start=' + start.toString() + '&', '&start=' + startnext.toString() + '&');
}