Gridview disparaissent lors de la publication lors de la pagination est activée
J'ai un gridview qui a son DataSourceID propriété est définie à une coutume ObjectDataSource objet. Lorsque les cases à cocher allowcustompaging est définie sur True, le contrôle GridView disparaît après une publication. Si j'ai mis cases à cocher allowcustompaging pour de Faux, c'est bien. Quelqu'un peut-il éclairer sur ce pour moi? 🙂
Edit: L'autre chose que je suis confus au sujet de qui est, je pense que si vous définissez la DataSourceID que la grille des données de la source de données chaque fois qu'il en avait besoin. Si la grille est en train de disparaître parce que c'est pas en possession des données, pourquoi n'est-ce pas le contrôle gridview obtenir les données dont il a besoin à partir de la source de données?
OriginalL'auteur adam0101 | 2009-02-24
Vous devez vous connecter pour publier un commentaire.
Il est possible que, après la publication se produit à la source de données n'est pas maintenue ou renouvelée et il n'y a pas d'éléments pour remplir la grille. Êtes-vous de la manipulation de l'état correctement pour l'objet source de données (reliaison/maintien de la source de la vie) lors de la pagination est activée?
Cela peut paraître comme une vague réponse, mais sans un exemple de la façon dont la source est l'obtention de données c'est un peu difficile à diagnostiquer pourquoi les éléments aurait disparu.
Edit:
La méthode que je pensais était pour rappel pagination/tri. Cependant j'ai trouvé quelques infos ont-il à l'ODS & Pagination.. assurez-vous que vous avez fixé:
Je pense que vous ne devez définir les 3 sous-éléments de l'élément 2 si vous souhaitez gérer la pagination taille, etc manuellement.
Alors vous pouvez en lire plus sur ce ici.
Je pense qu'il y a un moyen de rendre la grille gérer la pagination sur son propre si la liaison à une source de données via un id mais il y a une propriété que vous devez définir, bien que j'ai peut-être la pensée de "rappel" de la pagination. Laissez-moi vérifier. Autrement oui, vous avez généralement à gérer la pagination manuellement.
Après lecture de ceci: blog.tylerholmes.com/2008/06/... il semblait simplement le réglage de la DataSourceID a été le déclencheur pour obtenir la grille de databind elle-même, lorsqu'il a besoin de données.
Votre dernière modification m'a mis à la recherche de certaines plus - surtout la 3ème balle. Il s'avère à mon habitude de la source de données était de retour à zéro pour le nombre d'enregistrements. Ainsi, même si les données ne reçoit pas de rebond à chaque fois, il faut toujours regarder le compteur de chaque publication. J'ai corrigé et j'ai réussi à travailler! Merci pour votre aide
Pas de problème, content que tu l'ai eu et en cours d'exécution!
OriginalL'auteur Quintin Robinson
De répondre à plus de @adam0101 de réponse, ce qui je pense que qu'il entend par "...Il s'avère à mon habitude de la source de données était de retour zéro pour le nombre d'enregistrements.", est que vous pouvez avoir besoin de "ré-attacher" la source de données pour le contrôle gridview. ASP.net automatiquement sait que vous êtes retriving de l'enregistrement'n', où 'n' est la prochaine première ligne de la page suivante. Cette solution est plus pour les cas où vous ne souhaitez pas autoriser asp.net pour de traiter automatiquement les données dans votre gridview, peut-être en voulant charger des données après un autre événement (une CHARGE bouton de DONNÉES par exemple), et non pas lorsque la page est chargée pour la première fois. Mais comme Adam mentionnées ci-dessous la vraie raison était-il "...a créé une source de données sous-classe héritée ObjectDataSource, mais il a été mis en œuvre de manière incorrecte.". Désolé pour mon hypothèse, Adam. Grâce
Cependant, le reste de ma solution, je pense, va travailler pour ceux qui sont coincés sur l'utilisation manuelle de données provenant de sources.
ie
Définir votre GridView comme indiqué ci-dessus, et notez - sans propriété DataSource! Voici mon exemple:
Ensuite, faire une méthode privée ou de routine que vous pouvez appeler quand vous en avez besoin de la force de la gridview sur une nouvelle page.
Ensuite, créez le
OnPageIndexChanging
méthode:Pour le plaisir de compléter cette réponse, voici mon code où je charge les données quand je veux - pas quand un PostPack est déclenché, ce qui est la valeur par défaut...
Bravo à toi Adam. Merci. J'ai mis à jour ma réponse.
OriginalL'auteur Fandango68