12 messaggi dal 14 giugno 2007
Ciao a tutti.
Mi succede una cosa strana, che non riesco a spiegarmi, purtroppo non ho trovato nessuna documentazione a riguardo. Praticamente ho e gridview con 3 sqldatasource. Una è visibile e le altre 2 no. Selezionando un campo della prima, mi creo dinamicamente il datasource (quindi il comando select) per la seconda grid, con la condizione di where codice = codice_che_setto_da_indexchanged. Appare la seconda grid...a sua volta, se seleziono una riga mi genero programmaticamente il terzo sqldatasource per la terza grid, con la select dipendente dal codice della seconda grid...fin qui nessun problema. I problemi avvengono quando faccio le modifiche. Utilizzo i templatefield con itemtemplate e edittemplate...sulla prima griglia, sul pulsante modifica, se lo clicco, vengono caricati i controlli degli edittemplate. Il datasource della prima griglia è stato dichiarato in design time...mentre per le altre 2 griglie, se clicco sul pulsante modifica, mi viene generato un errore, anche se ho l'updatecommand nei relativi datasource...praticamente mi richiede di definire il metodo "rowediting"...cosa che non avviene invece per la prima grid...
Qualcuno di voi riesce a spiegarmi il motivo?

I datasource li genero in questo modo:

SqlDataSource miods = new SqlDataSource();
miods.ID = "miods";
miods.ConnectionString = "stringaconnessione";
miods.Selectcommand = la_query_sql_di_select;
miods.UpdateParameters.Add()
...
aggiungo la lista dei parametri
...
miods.UpdateCommand = la_query_di_update;

Dimentico qualcosa?
credo che dovresti ricreare ad ogni PostBack SqlDataSource, comunque come associ poi SqlDataSource al GridView?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
12 messaggi dal 14 giugno 2007
gridview.datasource = miods;
gridview.databind();

scusa, non ti ho capito...come ricreo ad ogni postback il datasource? Per il comando select funziona su tutte e 3...
dimentica per un attimo la questione della creazione ad ogni postback.

il primo SqlDataSource invece è associato alla sua GridView mediante l'uso della proprietà DataSourceID vero?

allora nel caso in cui usi DataSourceID l'update, delete ecc ecc sono gestiti automaticamente.

mentre se usi la proprietà DataSource devi fare tutto a mano, ovvero impostare ad esempio la riga in modalità di edit, cosa che puoi fare gestendo l'evento RowEditing, ma ripeto devi fare tutto a mano, compreso richiamare il metodo per eseguire la query.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
12 messaggi dal 14 giugno 2007
Ok, ho capito!
Grazie mille per il consiglio!!
di niete buon lavoro.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.