Afficher le pied de page sur la grille vide?
voulais juste savoir quelle est la meilleure et la plus simple façon de montrer un gridview pied pour la saisie de données, même lorsque le contrôle gridview est vide ?
source d'informationauteur Zo Has
Vous devez vous connecter pour publier un commentaire.
Ensemble de votre source de données pour le type d'objet que vous êtes la liaison à la GridView avec un objet rempli avec des valeurs vides, puis se cacher que DataRow.
EDIT: Puisque vous êtes à l'aide d'un datatable...
Plus élégamment.. étendre GridView et ajouter un ShowFooterWhenEmpty propriété de sorte que vous n'avez pas à mettre en œuvre le code personnalisé partout.
Une autre solution est de toujours ajouter une ligne fictive dans votre source de données, la "marque" de la ligne avec une valeur spécifique, puis masquer la ligne sur RowDataBound.
Pour être plus précis, ajouter la colonne ", 0 COMME dummyRow" à la fin de votre requête clause SELECT, puis de l'UNION de la totalité de tresorerie pour
Une fois que vous avez la requête en place (tout ce qui peut être fait à l'intérieur de votre SQLDataSource ou dans le votre DAL objet, le code de la grille va ressembler à quelque chose comme ceci:
Cette solution est livré avec quelques évident frais généraux, depuis cette vérification sera effectuée pour chaque ligne de résultats, pour ne pas mentionner que vous avez à changer votre Requête SELECT, mais, il a également l'avantage de ne pas nécessiter de modifier dynamiquement l'ensemble des données (comme dans le premier exemple) et ne nécessitant pas beaucoup de code ou d'avoir à déployer de contrôle personnalisé des bibliothèques pour votre web-projet.
Comme un side note, si vous voulez conditionnelle, SOIT d'afficher la grille de l'en-tête et pied de page OU afficher les emptydata texte/modèle, après avoir caché la ligne avec le code que j'ai posté ci-dessus, vous pouvez vérifier votre état et, si nécessaire, supprimer la ligne. Ensuite, le code ressemblera à ceci:
Avis que nous avons ici de supprimer à la fois le DataItem ligne (nécessaire parce que sur le post-sauvegarde de la gridview peut se redessiner sans re-liaison de données) et le contrôle GridView Ligne (nécessaire, parce qu'à ce point de la ligne est déjà dans la grille de l'Childtable, que nous ne voulons pas).
Enfin, si le caché enregistrement fictif est à l'origine d'autres problèmes dans votre gridview quand il a d'autres données (par exemple, la mauvaise pagination), vous pouvez utiliser un code similaire pour supprimer votre ligne fictive lorsque le contrôle gridview a plus de lignes.
Vous pouvez créer un "vide" de ligne et de le rendre invisible:
Idéalement, vous voulez seulement montrer la ligne fictive si il n'y a pas d'enregistrements dans la table. Alors réglez votre SelectCommand à quelque chose comme ceci:
SÉLECTIONNEZ [ID], Prénom, Nom, e-mails DE Clients
union
SÉLECTIONNEZ 0 [ID], "Prénom Nom", " Email où 0 in (SELECT COUNT(1) à partir de Clients)
De cette façon, si le nombre > 0, la ligne fictive n'est pas retournée.
Noter que la ligne fictive ne dispose pas d'une clause from.