Comment rafraîchissement de un .NET lié aux données contrôle repeater
J'ai un .NET repeater
de contrôle qui est data-bound
à une Liste. Dans le cadre de la Répétition du Item Collection
, j'ai un "Bouton Supprimer" qui supprime efficacement cet élément de Liste en cours.
Cela fonctionne, dans le code-behind, je peux réussir à supprimer un élément de la datasource
de la Répéteur.
Mon problème est ce : quand je reset la mise à jour datasource
et appel MyRepeater.DataBind()
encore une fois, la Répéteur interface n'est pas actualisé avec l'Élément supprimé.
Je suis à la recherche de la manifestation de l'essentiel de redessiner ou actualiser la Répéteur basée sur la mise à jour de la Liste. Merci pour tous les pointeurs ou des exemples.
OriginalL'auteur Ash Machine | 2009-01-20
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'appeler la "DataBind' méthode de votre source de données, puis appel 'DataBind" sur votre contrôle Repeater.
OriginalL'auteur Dhaust
Nourrissez-vous de rafraîchir la source de données?
Si vous êtes le réglage de la source de données dans le code-behind, vous devez le régler avec des données actualisées puis d'appeler la méthode DataBind.
Hmm... Peut-être vous pouvez poster une partie de votre code.
OriginalL'auteur Brian Kim
Je suis tombé sur quelque chose comme ça avec un Contrôle Repeater et un DataTable source.
Il n'y avait pas une méthode d'Actualisation dans DataTable, mais en l'appelant DataTable.EnableDynamicData(typeof(DataTable)) le chargement initial de la page résolu le problème.
OriginalL'auteur yffu
J'ai eu une situation similaire...un répéteur lié à un xmlDataSource, à la fois à l'intérieur d'un UpdatePanel. Je voulais permettre à l'utilisateur de saisir un nom à un moment, puis cliquez sur "Ajouter" bouton pour mettre à jour la liste dans la répétition.
J'ai mis "EnableViewState" pour de Faux sur le répéteur et le xmlDataSource, et réglez "EnableCaching" sur le xmlDataSource à False. J'ai mis la propriété Data de l'xmlDataSource, appelée DataBind pour la xmlDataSource, définissez la propriété DataSourceID de la répétition, qui s'appelait alors DataBind pour la répétition. Peut-être que c'est exagéré...mais cela a fonctionné. Peut-être que cela aidera.
Mise à JOUR: j'ai trouvé que par la mise en EnableViewState à Faux sur le contrôle repeater, mon ItemCommand l'événement ne serait pas le feu. Mais je pense que vous ne devez définir EnableViewState/EnableCaching à Faux pour la source de données...j'ai retourné le EnableViewState paramètre à True pour le répéteur et maintenant tout semble bien.
OriginalL'auteur
Forcer Databind est habituellement effectué lorsque les automatique DataBind est fait dans le pré-rendu événement.
Normalement, si vous ne les supprimer dans l'événement click, le relais devrait s'actualiser par lui-même, car automatiquement dans le pré-rendu, les contrôles sur la page sont DataBind(). Voici ce que le doc de microsoft dire :
source
Donc, vous avez probablement touchés Youritem.DataSource = Liste, mais MME suggère de faire des YourItem.DataSourceID = Liste.ID, ou quelque chose comme ça.
Espère que cela aide
OriginalL'auteur lucian.jp