2017-04-04 1 views
0

J'utilise un RadComboBox en mode chargement à la demande (paresseux) avec un service Web.RadComboBox: cliquer sur les gestionnaires perdus après le défilement lors de l'utilisation d'un modèle d'article client avec chargement à la demande

J'utilise un modèle d'élément côté client de ce formulaire: <input type='checkbox' id='cb_#= Value #'/><span>#= Text #</span> (ajout d'une case à cocher avant le texte de chaque article)

Dans le gestionnaire côté client ItemDataBound pour cette RadComboBox je récupérer l'élément DOM de l'élément particulier et l'élément DOM de case à cocher imbriqué et en ajoutant une fonction de gestionnaire de clic pour chacun d'eux (en utilisant $(element).click(function() {}) de jquery). Les fonctions du gestionnaire de clics fonctionnent bien jusqu'à ce que je fasse défiler les éléments hors vue, puis que je revienne en arrière, après quoi les gestionnaires de clics ne sont plus appelés (la case à cocher est également perdue).

Je suppose que c'est parce que les éléments DOM représentant les éléments sont recréés à mesure qu'ils défilent et disparaissent. Mais l'événement itemDataBound n'est déclenché qu'une seule fois et n'est pas levé à nouveau lorsqu'un élément est défilé à nouveau dans la vue.

La seule solution de contournement que je peux penser est d'utiliser l'attribut onclick dans le code HTML et de référencer une fonction globale à partir de là, mais c'est moche.

Existe-t-il une meilleure solution pour cela, en utilisant l'attribut onclick?

Répondre

0

Ce qu'il fait en réalité, il ajoute innerHtml de l'élément de la liste, mais cela est effectivement re-déplacer et ré-ajouter chaque nœud sous l'élément de la liste.

J'ai travaillé autour en assignant mon clic et clapoteuses faire le databiding dans le gestionnaire côté client itemsRequested, itérer sur la liste complète des articles obtenus avec la méthode get_items() de l'objet côté client RadCombobBox.

itemsRequested est appelée à chaque fois que de nouveaux éléments sont ajoutés à la liste et donc chaque fois que le DOM est recréé.