Bonjour,

J'essaye depuis quelques jours de créer dynamiquement une colonne CommandField et je bloque sur la création de cette colonne dans mon gridview.

Pour le moment je ne travaille que sur le code behind je crée mon gridview ("relié" a un SqlDataSource) ainsi que toutes ses colonnes, jusque là tout fonctionne.
Ensuite je passe a la création de ma dernière colonne, mon fameux CommandField :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
            CommandField maCommand;
            maCommand = new CommandField();
            maCommand.HeaderText = "";
 
            grid.Columns.Add(maCommand);
            grid.DataBind();
En fait le code fonctionne tout s'affiche correctement mais quand je clique sur modifier voici ce qui apparait :
Le GridView 'ctl02' a déclenché un événement RowEditing qui n'était pas géré.
Ce qui me bloque c'est surtout que quand on fait ça par le design tout est fini en 2 a 3 clics et il n'y a pas besoin de gérer cet événement je ne sais donc pas comment gérer cet événement.

Je fait donc appel a vous pour m'éclairer sur ce problème.

Merci

EDIT :

Je créé un GridView et un SqlDataSource par le mode design, je les configure tous les deux tout fonctionne parfaitement bien.
Maintenant je supprime mon SqlDataSource pour en créer un nouveau dans mon code behind, comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            SqlDataSource autreSQL;
            string[] key;
            key = new string[1];
            key[0] = "id_colonne";
 
            autreSQL = new SqlDataSource();
            autreSQL.ProviderName = "MySql.Data.MySqlClient";
            autreSQL.ConnectionString = "server=localhost;User Id=root;database=tdb-55";
            autreSQL.SelectCommand = "SELECT * FROM titre_colonne WHERE id_cat = 6";
            autreSQL.UpdateCommand = "UPDATE titre_colonne SET libelle_colonne = @libelle_colonne WHERE id_colonne = @id_colonne";
            form1.Controls.Add(autreSQL);
 
            GridView2.DataSourceID = autreSQL.ID;
            GridView2.DataKeyNames = key;
J'ai renseigné tout ce qu'il y avait à renseigner enfin tout ce que j'avais configuré en mode design je l'ai refait dans le code behind mais rien n'y fait je n'ai strictement rien à l'écran.

Peut-on créer dynamiquement un SqlDataSource ?
Peut on lier un Control créé dans la partie design à un Control créé dans la partie code ?

Je suis perdu ...

Merci d'avance.