' ------------------------------ ' 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 .... ' ------------------------------
je trouve ce petit bout de code fort interessant !!!cependant, est il possible d'ajouter des composants aux cellules du tableau, tel que les textbox par exemple ?j'ai essayé, mais a marche po...
Dans ce cas il faut plutot passer par un Datatable ou faire un Data Repeater avec en répétition tes celulles.F___
Merci beaucoup j'avais poser cette question sur le forum avant de voir ta source et oui je n'avais pas bien chercher.ta source ma enorment servie moi qui cherche a séparer au max mon code de ma page internet la c'est bon parcontre comment donne tu la longeur des cellule ?merci
Avec le Width de la Case (Cellule).F___
dsl de cette question j'etais mal reveiller lolj'ai mal lu le codemerci tout de meme
y aurais t'il moyen de fair la fonction onmouseover et onmouseout car je ne trouve pas
Il est possible de passer par un webcontrol pour générer un tableau dynamiquement.Cela permet entre autre de pouvoir insérer des textbox dans les cellules.' ------------------------------' Dans le fichier xxx.ASPX<asp:TABLE ID=MonTableau runat="server" ></asp:TABLE>....' ------------------------------' Dans le fichier xxx.aspx.VB...Protected WithEvents MonTableau As System.Web.UI.WebControls.Table....'et dans la fonction de chargement par exemple :MonTableau.Width = Unit.Percentage(100)MonTableau.CellPadding = 1MonTableau.CellSpacing = 2MonTableau.BorderWidth = Unit.Point(0)' On ne chargera qu'une seule ligne dans ce tableauDim colonne As Integer, ligne As IntegerFor ligne = 0 To 0Dim Maligne As New TableRow()' On ajoutera 10 case dans ce tableauFor colonne =0 To 9 Dim MaCase As New TableCell() MaCase.Width = "10%" MaCase.Text = "WWW.ASPFR.COM" Maligne.Cells.Add(MaCase)NextMonTableau.Rows.Add(Maligne)Next -----------------'Autre exemple avec cette fois les données reprises à partir d'un datasetDim Maligne2 As New TableRow' On ajoutera autant de textbox dans cette ligne que de champs dans la table sélectionnéeFor colonne = 0 To ds.Tables(0).Columns.Count - 1 Dim MaCase As New TableCell Dim tb As New TextBox tb.ID = "txt_" & ds.Tables(0).Columns(colonne).ColumnName MaCase.Width = Unit.Percentage(10) MaCase.Controls.AddAt(0, tb) Maligne2.Cells.Add(MaCase)NextMonTableau.Rows.Add(Maligne2)....' ------------------------------
Merci beaucoup pour cette source !Je m'en sortais pas avec un Datagrid
j'arrive à ajouter dynamiquement des cellules à un tableau de la même façon décrite plus haut, ainsi que des composants dans le style checkbox, dropdownlist, ...Ce qui m'embête, c'est que les cellules qui sont créées dynamiquement uniquement au premier chargement de la page (If Not IsPostBack) disparaissent au premier postback.quelqun a-t'il une idée du problème.J'ai bien essayé sans la close "If Not IsPostBack". Dans cette condition pas de problème de visualisation mais si un checkbox a été coché, malgré qu'il réapparaisse coché, si je teste sa valeur, elle est égale à "False" ce qui por moi est logique puisque j'ai rechargé le tableau à l'état d'initialisation.
Il te fait recreer ces cellules dans ton page_load ou le page_init, c'ets vrai pourt tout composant créé dynamiquement.Bon courage,Emilien
Merci pour ce bout de code. il y a juste une chose que je n'ai pas trouvé : comment y appliquer le CSS voulu au élément de la table ?la seule chose que j'ai trouvé c'est de faire :MaLigne.Style.value = "text-align:center;background......."Maligne.Attributes.CssStyle.value = "MaClasseCSS"->ca marche pasC'est à dire que je suis obligé de recopier tout ce qu'il y a dans la partie du CSS que je veux appliquer, je n'arrive pas à passer le nom de la class CSS. Une solution ?
Est-il possible de mettre des asp control dans chaque case?
Oui c'est possible, il suffit juste de créer un controle pour chaque case /// code tableau en c# HtmlTableRow MaLigne = new HtmlTableRow(); HtmlTableCell macase = new HtmlTableCell(); HtmlTableCell macase2 = new HtmlTableCell(); HtmlTableCell macase3 = new HtmlTableCell(); //------------------------------------------- TextBox text = new TextBox(); Button boutton = new Button(); //------------------------------------------- boutton.Text = "Hello !"; //------------------------------------------- macase.Width = "10%"; macase2.Width = "100"; //------------------------------------------- macase.InnerHtml = "WWW.ASPFR.COM"; //------------------------------------------- macase2.Controls.Add(text); macase3.Controls.Add(boutton); //------------------------------------------- MaLigne.Cells.Add(macase); MaLigne.Cells.Add(macase2); MaLigne.Cells.Add(macase3); //------------------------------------------ Table1.Rows.Add(MaLigne);
Concernant la question de JUL_ARSOE, il est en effet possible de rajouter des infos afin d'appliquer un CSS : Dim ligne As New HtmlTableRow() Dim cellule As New HtmlTableCell() cellule.Attributes.Item("class") = "maCell" ligne.Attributes.Item("class") = "maLigne" ligne.Cells.Add(cellule) table.Rows.Add(ligne)le résultat est :<tr class="maLigne> <td class="maCell"> </td></tr>Il suffit ensuite de définir les classes dans le css ;)Merci à cette source qui m'a bien aidée !!!
Un gros gros merci!!!!!!
merci bc mais j'ai une question si je veux utiliser un lien par parametre dan s macase.innerhtmlcomment faire ??par ex :macase.Innerhtml="<a href='travail.aspx?numero='comment faire pour affecter une valeur a ce parametre
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).InnerTextNextQuelle serait la meilleure façon de faire une boucle pour liste le contenu de la table créée plutôt? Merci!
Bonjour,En VB.NET les index partent de 1 à XX étant le nombre d'items dans une listeEn C#, c'est de 0 a X-1Voila certainement la raison de cette erreur.Fabrice
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)....
Je n'ai poas joué avec ces options de colspan depuis le code Behind
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 690 655 membres 31 nouveaux aujourd'hui 15 693 membres club