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), les données de la pages ne sont pas accessibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part GV_pp_RowUpdating(object sender, GridViewUpdateEventArgs e) {...
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:
avec :
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]); } } }
et:
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; }
mais au moment de l'evenement rowupdating, mes textbox n'ont desesperement pas les valeurs rentrée...
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); } }
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...
Partager