Comment puis-je masquer les colonnes vides dans un gridview sans savoir qui sera vide?
Je travaille avec un gridview qui extrait des données à partir d'une base de données SQL sur la base des sélections dans les listes déroulantes. La table source a six colonnes pour les attributs de la sélection, mais selon ce qui est choisi, il pourrait être n'importe où de un à six de ceux qui sont vides (toutes les valeurs null). Lorsque la colonne est vide, je voudrais l'avoir caché alors que la page est moins maladroit et confus.
J'ai cherché une réponse depuis quelques jours, mais ce que j'ai trouvé jusqu'à présent est soit liée à masquer des colonnes que vous savez qu'ils sont vides, que je ne sais ou leur suppression dans le code SQL qui je pense ne fonctionne pas si la colonne est appelé dans le contrôle gridview code et n'existe pas dans la requête.
Je suis très nouveau pour ASP.NET donc je suis désolé si certains de mes terminologie est éteint! Laissez-moi savoir si vous avez des questions sur ce que je vous demande.
Merci d'avance pour votre aide!
- Veuillez fournir des précisions supplémentaires - quelle est la version de l' .Net framework & Visual Studio vous travaillez avec? Cela va affecter les réponses, comme Linq n'est pas disponible avant .Net 3.5 (VS 2008). Aussi un exemple de ce que fait le code serait utile en fournissant une réponse.
- Pouvez-vous ne pas le laisser charger, puis vérifier si il y a une colonne qui n'a pas de valeur
Vous devez vous connecter pour publier un commentaire.
Au lieu de se cacher des colonnes vides, pourquoi ne pas vous ajouter les colonnes que vous souhaitez dans le code derrière?
Lorsque vous récupérez les données à afficher, vous savez que les colonnes qui sont présents. Vous pouvez les ajouter et de les databind dans le code derrière.
Pour vous obtenir a commencé avec cela, voici un peu de code à partir d'un article utile sur la façon de le faire:
Vous pourriez essayer:
Visible="false"
)Visible="true"
)La RowDataBound méthode pourrait ressembler à quelque chose comme ceci:
Meilleure façon de le faire pour le web:
Au lieu de ce code:
Utiliser celui-ci:
sur le onItemBound cas de la grille, vous pouvez vérifier la valeur de la variable à régler dans les cellules de la colonne et sa visibilité est définie en conséquence