Asp.net - créer un tableau html dynamiquement à partir du code behind

Soyez le premier à donner votre avis sur cette source.

Snippet vu 56 351 fois - Téléchargée 36 fois

Contenu du snippet

Il peut être très utile de pouvoir manager un tableau HTML déclaré dans le gabarit (xxx.ASPX), à partir du code behind (xxx.aspx.VB).
Ceci afin de par exemple charger le tableau depuis une base de données.

Source / Exemple :


' ------------------------------
' Dans le fichier xxx.ASPX

.....
' On ne fait que de déclarer le tableau HTML avec la balise classique HTML 
' TABLE en ajoutant dans la balise : id="MonTableau"  et runat="server" 
<TABLE ID=MonTableau  runat="server" >
</TABLE>
....

' ------------------------------
' Dans le fichier xxx.aspx.VB

'on aura alors 
...
Protected WithEvents MonTableau As System.Web.UI.HtmlControls.HtmlTable
....

'et dans la fonction de chargement par exemple :

MonTableau.Width = "100%"
MonTableau.CellPadding = "1"
MonTableau.CellSpacing = "2"
MonTableau.Border = "0"

' On ne chargera qu'une seule ligne dans ce tableau
Dim colonne As Integer, ligne As Integer

For ligne = 0 To 0
Dim Maligne As New HtmlTableRow()
 ' On ajoutera 10 case dans ce tableau
 For colonne =0 to 9
   Dim MaCase As New HtmlTableCell()
   MaCase.Width = "10%"
   MaCase.InnerHtml = "WWW.ASPFR.COM"
   Maligne.Cells.Add(MaCase)
 Next
MonTableau.Rows.Add(Maligne)
Next

....
' ------------------------------

Conclusion :


Bon coding

Romelard Fabrice (Alias F___)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
9
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
12 février 2012

Vraiment pour moi qui suis un débutant en asp.NEt ton code m'a beaucoup aidé . encore mercii
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Je n'ai poas joué avec ces options de colspan depuis le code Behind
Messages postés
177
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
16 octobre 2012

Merci Fabrice,

Mais en fait, pour ceux que ça intéresse, lorsqu'on lit un tableau ainsi, il ne faut pas utiliser ceci :

==> If tblDetails.Rows(a).Cells(15).InnerText then...........

==> col0.Attributes.Add("colspan", "20")

On dirait qu'il ne reconnait plus la colonne 15 qui est plutôt une seule colonne(colspan)....
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Bonjour,
En VB.NET les index partent de 1 à X
X étant le nombre d'items dans une liste
En C#, c'est de 0 a X-1

Voila certainement la raison de cette erreur.
Fabrice
Messages postés
177
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
16 octobre 2012

Merci Fabrice pour ce post!

Je suis cependant confronté à une erreur lorsque je veux lire le contenu de ma table. J'ai l'erreur suivante : Specified argument was out of the range of valid values (Parameter name: index ). Lorsque je liste la colonne 0, ça fonctionne mais dès que je place un compteur pour lister toutes les valeurs, j'ai l'erreur :

For a = 1 To tblDetails.Rows.Count - 1
Session("monTableau") = Session("monTableau") & "-" & tblDetails.Rows(a).Cells(1).InnerText
Next


Quelle serait la meilleure façon de faire une boucle pour liste le contenu de la table créée plutôt?

Merci!
Afficher les 21 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.