Créer une navigation pour une embedded view en Web

Toutes les astuces sur le langage JavaScript dans Lotus Notes

Créer une navigation pour une embedded view en Web

Messagepar abertisch » 11 Fév 2008 à 08:07

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];
}
Dernière édition par abertisch le 12 Mai 2011 à 09:23, édité 6 fois.
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar abertisch » 11 Fév 2008 à 08:14

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() + '&');
}
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse


Retour vers JavaScript