Bonjour à vous,
Alors voilà, j'ai un petit problème sur une application en cours de developpement.
L'utilisateur choisit tout plein d'option, et en fonction de celles-ci je remplis le gridview, vous devez donc vous doutez que tout est fait par le code behind, plus présisément par une DataTable.
Le truc c'est que l'utilisateur doit pouvoir éditer certaines (seulement certaines) valeurs de la gridview que je lui affiche. J'ai donc rajouter des TextBox dans cette gridview à partir du RowDataBound. Dans cette fonction je réalise plusieurs vérifications pour savoir ou non si je place mon TextBox.
En code ça donne ça :
Il y a une autre Textbox de rajouter dans un autre cas, mais si j'arrive à résoudre mon problème pour celles-ci, cela devrait être aisé pour les suivantes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 try { if (e.Row.RowIndex != -1 && e.Row.RowIndex < 12) { if (DateEdit(e.Row.RowIndex) && e.Row.Cells[8].Controls.Count == 0) { string val = "0"; val = e.Row.Cells[8].Text; TextBox tb = new TextBox(); e.Row.Cells[8].Controls.Add(tb); tb.ID = "TextBoxEdit" + e.Row.RowIndex; tb.Visible = true; tb.EnableViewState = true; tb.AutoPostBack = true; tb.Width = 50; tb.Text = val; } }
Donc mon problème est que lorsque l'utilisateur clique sur le bouton enregistrer, toutes mes TextBox disparaissent, étant remplacées par les valeurs qu'elles contenaient au moment du chargement. Les valeurs de l'utilisateur ne sont donc pas mémorisées, et je ne peux pas les récupérer.
Encore que les TextBox disparaissent au moment du clique ne me gène pas trop, mais perdre les informations de l'utilisateur c'est plutôt mauvais pour les enregistrer sur la BDD après... :s
Je vous remercie par avance de l'aide que vous pourriez m'apporter.
Pour le moment je repars à la charge ^^.
PS : Ha oui petite précision puisque tout est dynamique je ne peux instancier mes TextBox que sur le OnRowDataBound, s'il y a une autre solution alternative je suis près à essayer, mais pour le moment je ne trouve pas.
Partager