[VB.Net] DataAdapter, Affichage si non null ???
Bonjour,
Je suis débutante en .Net. J'utilise un DataAdapter et un DataGrid pour afficher des données provenant d'une requête SQL.
J'aimerais afficher mes données, mais seulement si les champs ne sont pas null ou vide pour certains champs.
J'ai passé au travers plusieurs livres de .Net mais aucun n'explique comment faire celà et je n'arrive pas à trouver ce genre d'informations ailleurs non plus. Je savais bien comment faire en ASP, mais en ASP.Net, là je suis un peu perdu.
Donc, pour afficher mes données j'utilise:
Code:
<%# Container.DataItem("MonChamp") %><br/>
Mais quelle est la méthode pour utiliser une condition dans mon code HTML?
Code:
1 2 3 4 5 6
|
<%
if MonChamp <> "" then
L'AFFICHER & <br/>
end if
%> |
Mais peut-être dois-je passer directement par le code dans le head et utiliser des balises asp:litteral ou quelque chose comme ça? Enfin, dans les 2 cas, je ne sais pas trop comment m'y prendre avec mon DataAdapter. Je veux dire que je sais comment le parcourir dans le HTML mais pas dans mon code directement...
Enfin, j'espère que mes explications sont assez claire.
Merci beaucoup,
Sophy
Pourquoi pas un DataRepeater ?
Personnellement j'utilise des DataRepeater ou des DataList beaucoup plus souples que les DataGrid.
Si l'on veut choisir entre renvoyer quelque chose ou pas il suffit de créer une fonction qui renvoie le code html avec les données:
Code:
1 2 3 4 5
| function RenvoiSiPasNull(ByVal Value as Object) as String
if isdbnull(Value) = false then
return "<tr><td>" & Value & "</td></tr>"
end if
end function |
Dans le htm on met:
Code:
1 2 3
| <asp:Repeater><ItemTemplate>
<%# RenvoiSiPasNull(DataBinder.Eval(Container.DataItem, "Field")%>
</ItemTemplate></asp:Repeater> |
Comme ca la ligne n'est renvoyée que si la valeur n'est pas nulle. Ca fait un peut bidouille mais ca permet d'ecrire ce qu'on veut ou on veut...
On doit certainement pouvoir faire plus propre dans le code en Itérant la collection Items du DataReader dans le Code, mais il faut alors tout construire par le code...