Bonjour,

j'ai realisé une gridview completement dynamique
c'est a dire que les templates sont generés dans la partie behind (la liaison des données aussi evidement...)

je garde egalement en session l'etat de la gridview (du moins ses données)

l'ennui c'est qu'a la sauvegarde des modification apres l'edition (j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GV_pp_RowUpdating(object sender, GridViewUpdateEventArgs e) {...
), les données de la pages ne sont pas accessibles.

j'ai su le faire, je ne vois plus le pb

le viewstate ne se charge pas de tout

au chargement je dois reconstruire et appliquer mes templates:
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
        protected void Page_Load(object sender, EventArgs e) {
            clients = new DS_client();
 
            if (!IsPostBack) init_data_page();
            else {
                mesdata = (DataZ)Session["mesdata"];
                if (mesdata == null) {
                    messbox("Session expirée... données perdues... tout recommencer... c'est la vie... snif!");
                    init_data_page();
                } else {
                    clients = (DS_client)mesdata.DS_cour;
                    DG_pp.DataSource = clients;
                    DG_dyn_col(DG_pp, clients.Tables[0]);
                }
            }
        }
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
        protected void init_data_page() {
            mesdata = new DataZ("c:/test.xml", clients);
            DG_dyn_col(DG_pp, clients.Tables[0]);
            Session["mesdata"] = mesdata;
            DG_pp.DataSource = clients;
        }
et:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
        protected void DG_dyn_col(GridView DG_cour, DataTable dt) {
            foreach (DataColumn col in dt.Columns) {
                TemplateField bfield = new TemplateField();
                bfield.HeaderTemplate = new GridViewTemplate(ListItemType.Header, col);
                bfield.ItemTemplate = new GridViewTemplate(ListItemType.Item, col);
                bfield.EditItemTemplate = new GridViewTemplate(ListItemType.EditItem, col);
                bfield.FooterTemplate = new GridViewTemplate(ListItemType.Footer, col);
                DG_cour.Columns.Add(bfield);
            }
        }
mais au moment de l'evenement rowupdating, mes textbox n'ont desesperement pas les valeurs rentrée...

c'est un peu logique en meme temps vu que je ne les stocke nulle part (en dehors du viewstate qui devrait se recharger)

la question pourrait peut etre devenir "comment trouver mes données dans le viewstate?"

bref, j'ai besoin d'aide...