Ajout de lignes dans une table - C#/.NET managed - Programmation
Marsh Posté le 18-01-2011 à 13:03:11
j'ai oublié de signaler le problème:
une seule ligne s'ajoute et stop, après meme si je clique rien ne se passe.
merci
Marsh Posté le 19-01-2011 à 15:37:52
Utilise plutôt le contrôle asp:Table
Je pense que le row que tu ajoute n'est pas dans le ViewState.
Marsh Posté le 19-01-2011 à 16:18:33
tout d'abord merci pour votre réponse.
j'ai fait une recherche sur ce ViewState mais je sais pas comment la manipuler.
Marsh Posté le 23-01-2011 à 00:16:06
ov3rflow a écrit : Utilise plutôt le contrôle asp:Table |
Pareil.
Si tu ne comprends pas le problème sous jacent manar-info je te conseille de te renseigner un peu, c'est crucial en web de comprendre ces notions...
Dans ton cas pour faire simple, pour conserver tes lignes d'un post back à l'autre tu dois stocker quelque part (en session par exemple) les objets que tu veux restituer dans ton tableau et reconstruire celui-ci entièrement à chaque fois, pas juste la dernière ligne.
Ou bien utiliser un type de contrôle qui permet l'exploitation du Viewstate.
Marsh Posté le 23-01-2011 à 11:04:01
je vous remercie j'ai résolu le problème en utilisant les viewstate.
voila le code si quelqu'un rencontrera le meme problème:
Citation : protected void Page_Load(object sender, EventArgs e) |
je cherche maintenant à ajouter les scrollbar à mon tableau.
merci.
Marsh Posté le 23-01-2011 à 14:08:26
Je ne comprend pas pourquoi tu te donnes la peine d'implémenter (mal en plus et de façon aussi restrictive) quelque chose qui est supporté de façon native ?
Si c'est juste pour apprendre soit, mais bon...
Marsh Posté le 23-01-2011 à 15:25:45
vous m'avez dit d'utiliser les viewstate et voila je que j'ai fait, je comprend pas c'est quoi cette chose qui est supporté de façon native ou bien ce que j'ai fait mal dans le code. j'aimerai bien que tu m'explique ou tu me précise dans les lignes de code l'erreur que j'ai commis.
merci.
Marsh Posté le 23-01-2011 à 15:33:24
Non, on a dit que la perte de tes lignes ajoutées d'un postback à l'autre était lié au Viewstate, pas de s'en servir pour contourner le problème, nuance .
Disons que ton code est parfait, dans le sens où il est propre et doit parfaitement fonctionner pour l'usage que tu en fais. Tu sembles également avoir compris comment fonctionne le viewstate et comment l'utiliser pour mémoriser temporairement une info.
Ce que je constatais c'est que ton code ne peut servir à rien en l'état : tout ce que tu y saisis sera perdu d'un postback à l'autre, et je présume que ce n'est pas ce que tu veux. D'où le fait que plutôt que stocker la structure du tableau, je me serai intéressé à son contenu.
Marsh Posté le 23-01-2011 à 16:23:49
oui exactement j'ai voulu m'en servir des viewstate juste pour garder les données inserées dans le tableau tant que l'utilisateur continue à insèrer ses lignes. après je vais faire un bouton où toutes les enregistrements vont etres insérés dans la base de donnée.
et comme ça lors d'un autre appel de la page le tableau s'affichera vide pour une autre insertion.
merci pour votre explication. si vous avez d'autres remarques merci de me faire part.
Marsh Posté le 23-01-2011 à 17:39:04
Mais là justement tout ce que fera le viewstate c'est permettre de conserver le nombre de lignes créées, par leur contenu. Et vu le mode de fonctionnement du viewstate (allers retours avec le client) ce serait une aberration de l'utiliser à cette fin. La session est déjà plus appropriée.
Par ailleurs, ton code contient beaucoup de réplication de code inutile et l'ajout de lignes au tableau gagnerait à se faire côté client, en JS, plutôt que par le serveur.
Marsh Posté le 28-01-2011 à 09:06:35
Fermeture suite à création de doublon : http://forum.hardware.fr/hfr/Progr [...] 2257_1.htm
Marsh Posté le 18-01-2011 à 12:04:21
Bonjour à tous,
Je cherche à créer un tableau dynamique, c'est à dire à partir de contrôles utilisateur ajouter et enlever des lignes.
Pour cela, j'ai fait quelques tests...
Dans ma page aspx, j'ai:
-------------------------------------------------------------------
<table id="Tab1" runat="server">
<tr>
<th>Nom Complet</th>
<th>CIN</th>
<th>Date de Naissance</th>
</tr>
</table>
<asp:Button ID="BtnAdd" Text="Ajouter Ligne" runat="server" onclick="BtnAdd_Click"/>
---------------------------------------------------------------------
Dans ma page aspx.cs, j'ai:
---------------------------------------------------------------------
protected void BtnAdd_Click(object sender, EventArgs e)
{
// créer une instace de ligne
HtmlTableRow newRow = new HtmlTableRow();
// Pour chacune des 3 colonnes
for (int i = 0; i < 3; i++)
{
//créer un champ
TextBox tb = new TextBox();
HtmlTableCell cell = new HtmlTableCell();
cell.Controls.Add(tb);
newRow.Cells.Add(cell);
}
Tab1.Controls.Add(newRow);
}
-------------------------------------------------------------------
j'ai cherché beaucoup. si vous avez une idée merci de m'aider