Imposer pagesize lors d'un appel search réalisé en JS

Tags: #<Tag:0x00007f9e4dd74bf8>

Bonjour,

J’ai une page HTML publique sur laquelle j’affiche le résultat d’un search sur un objet.

var app = new Simplicite.Ajax(ROOT, "uipublic");
app.getBusinessObject("MON_OBJ").search(function() {
    		// Affichage des résultats dans un tableau
}, { Nom="test"} , { page : nbPage });

Par défaut, la taille des pages est de 20 éléments.
Mon affichage se faisant dans une popup et sur de petits écrans, je souhaiterai limiter cette taille à 10.
J’ai essayé en ajoutant “pageSize : 10”, ce paramètre a été ignoré.
J’ai tenté la solution Pagination des listes dans les vues de pages d’accueil – > à savoir this.getGrant().setMaxRows. Sans succès.

Sauriez-vous comment puis-je implémenter mon besoin ?

Cordialement
Amandine TRIDOU

[Platform]
Status=OK
Version=4.0.P24
BuiltOn=2020-06-11 15:38 (revision 9b71145fb8ef7b00388d27cd50e8883c16200b84)
Encoding=UTF-8
EndpointIP=21.0.9.3
EndpointURL=http://73c9d317c88b:8080
TimeZone=Europe/Paris
SystemDate=2020-06-22 13:18:50

cf. https://docs.simplicite.io/documentation/03-apis/ajax-api.md#business-object-search

Quand on met page: N dans les options ça pagine, sinon non
La 1ère page est pour N = 0

NB : Quand l’appel est paginé la réponse donne les infos du numéro de la page max au même niveau que le count, ex: {"type":"search","response":{"count":28,"maxpage":1,"page":0,"pagesize":20,"list":[...]}}

Merci pour votre réponse. Cela ne répond toutefois pas à ma question. (Désolée je n’étais peut-être pas claire).
Je sais que mettre page pagine. C’est ce que je veux.
Et j’ai bien vu que le retour donne des informations complémentaires (maxpage,…).
Mon besoin est d’avoir un retour paginé avec des pages de 10 éléments (voire moins).
Comment imposer un pagesize dans mon appel ?

Cordialement

Bonjour David,

l’option de paramétrage du _pagesize intégrée dans le contexte des appels d’API mappées (cf. Pagination & pageSize par objet) est-elle aussi supportée dans le cadre des appels d’API internes Simplicité ?

Non en l’état il n’y a pas cette option disponible au niveau du search des services “JSON” (i.e. ceux accessibles via la lib Ajax standard et les services REST génériques).

Il faut faire des setMixRows et setMaxRows coté serveur sur l’instance en question.

Ex:

Coté JS je manipule l’instance foo_MyObject :

var obj = app.getBusinessObject("MyObject", "foo_MyObject");

Et coté Java je met dans le postLoad de l’objet un min/max sur cette même instance:

if ("foo_MyObject".equals(getInstanceName())) {
   setMinRows(10);
   setMaxRows(10);
}