J'utilise actuellement ZK pour le développement web. Voici mon cas:ZK Binding NotifyChange ne fonctionne pas sur événement OnChanging?
J'implémente la recherche instantanée, une fois le changement de texte => effectuer une recherche.
Zul Fichier
<textbox id="textSearch" sclass="search_text">
<attribute name="onChanging">
lbOnChangingSearch.setValue(event.getValue());
vm.onChangingTextSearch();
</attribute>
</textbox>
<label id="lbOnChangingSearch" visible="false"></label>
<grid id="gridChapter" model="@load(vm.chapterInPage)">
....
</grid>
Code contrôleur
ListModelList<ChapterJoinComic> chapterInPage;
public ListModelList<ChapterJoinComic> getChapterInPage() {
return chapterInPage;
}
@NotifyChange({ "topComics", "chapterInPage"})
@Command
public void onChangingTextSearch() {
FilterObject fo = getFilterObject();
fo.setSearch_str(lbOnChangingSearch.getValue());
//
doSearch(fo); // Change chapterInPage
// Manually post Not
BindUtils.postNotifyChange(null,null,this.chapterInPage,"chapterInPage");
}
Problème Après appel onChangingText recherche, Grille DonT jour databinding. Mais si je continue à changer de texte (plus d'appel onChangingTextSearch). La grille sera mise à jour, mais la valeur mise à jour est la valeur précédente.
Il semble que la grille soit plus lente que mon dernier objet Modèle.
Remarque Si j'utilise onOK au lieu de l'événement onChanging, la liaison de données fonctionne correctement.
Tout le monde peut m'aider. Merci d'avance!
Bonjour je vous remercie beaucoup pour votre soutien. Mais même j'ai essayé de remplacer "this.chapterInPage" par "this", ça ne marche pas. La grille ne rafraîchit pas les données de liaison après ces appels (@NotifyChange toujours là) – Ronaldinho
Je veux noter que, sur l'événement onOK, la grille rafraîchit bien, mais onChanging semble ne pas fonctionner, je ne comprends pas pourquoi – Ronaldinho
@Ronaldinho J'ai ajouté un exemple qui fonctionne pour moi. Jetez un coup d'oeil et essayez de changer votre code pour travailler comme ça. –