Bon, j'ai encore un soucis de programmation. Je vais essayer d'être précis et bref dans la description de ce que je veux et ce que j'ai fait.
Dans une page, j'ai une zone de texte avec un bouton. Un clic sur ce bouton déclenche l'affichage d'un datagrid au dessous, avec la valeur saisie et 5 autres colonnes : 3 boutons radios, une textbox et une imagebutton.
A chaque clic on ajoute une nouvelle valeur.
Côté programmation, le clic sur le bouton ajoute la valeur dans une datatable avec autant de colonnes que dans le datagrid final (ici, 5 donc). Et on rafraichit le datagrid. Le problème de cette technique, c'est que je souhaiterais que si un changement est effectué sur un bouton radio, et que l'utilisateur clic une nouvelle fois sur le bouton pour insérer une nouvelle valeur, la modification du bouton radio soit conservée.
Pour cela, j'ai pensé à sauvegarder dans ma datatable (qui permet donc l'affichage du datagrid) de mettre les valeurs des lignes au fur et à mesure qu'on clique sur le bouton. De façon à ce que le réaffichage permette de mettre toujours les bonnes valeurs.
J'ai créé des fonctions :
creerMaDatatable = création de la datatable avec les colonnes
remplirChamps = affectation de la datasource, ajout des colonnes dynamiques (boutons radios, text box et imagebutton)
chargerTable = remplirChamps + test si 0 élément ou non
maListe_databound = lit la date issue de la source (présente dans la cell(0)) et, à partir de la datatable indique aux autre controles dynamiques du datagrid s'il faut être checked ou non.
monBouton_click = insère dans la datatable la nouvelle valeur de la zone de saisie (+ valeurs par défaut pour les autres colonnes).
Le problème, c'est que dans monBouton_click, je voudrais lire la dernière ligne du datagrid, récupérer leur valeur (donc savoir quel bouton radio est checked par exemple), mettre à jour la datatable, insérer la nouvelle valeur (avec colonnes dynamiques par défaut) et réafficher le datagrid.
L'inconvénient, c'est qu'au moment où je suis dans le code de monBouton_click, ma datagrid ne contient qu'une seule colonne (et non les 5 !!). Du coup, mon "findcontrol" n'accède qu'à la première colonne (la valeur saisie à la main) et pas aux controles dynamiques qui sont visibles sur l'écran, mais non présent dans le datagrid. Impssible donc de savoir quel bouton radio est coché.
Si je rajoute un chargerTable avant, j'ai bien toutes les colonnes. Mais du coup, ça m'a recréé les colonnes dynamiques et je n'ai plus les valeurs saisies par l'utilisateur qui s'affichent, mais celles présentes dans la datatable précédemment.
Alors comment faire pour que l'affichage corresponde directement avec le contenu du datagrid et des colonnes générées dynamiquement.
Ou sinon, comment faire pour qu'un clic sur un bouton ajoute des valeurs et des colonnes dynamiques (basés sur une datatable), et que les modif des boutons radios dynamiques soient conservées d'un clic à l'autre ??