Domanda

Saluti, si spera che ci sia una soluzione semplice per questo problema complesso. Correggi eventuali idee sbagliate che ho lungo la strada.  Qualche tempo fa ho scritto un GrivView con funzionalità di colonna dinamica. Le colonne vengono aggiunte nell'evento della pagina OnInit in modo che vengano aggiunte PRIMA che venga applicato viewstate. Vengono riapplicati su ogni pubblicazione in questa sezione della pagina in modo tale che quando viene applicato il viewstate vengano mantenute le modifiche che l'utente ha apportato e che non ha eseguito il commit nel database. È inoltre necessario se non desideri che l'albero di controllo dello stato di visualizzazione non sia sincronizzato e faccia esplodere tutto.

Il mio problema attuale è che ora ho il compito di fare essenzialmente la stessa cosa in cui le colonne saranno diverse in base a un elenco a discesa (ricreare GridView se il ddl cambia e gli utenti perderanno tutto il lavoro con un avvertimento). Come posso ottenere l'ID selezionato nell'elenco a discesa nell'evento OnInit? La mia comprensione è che quando l'utente modifica il valore del ddl sul lato client viene generata una chiamata JavaScript "__doPostBack". La richiesta di pagina viene quindi inviata al server ma quando il nuovo valore è presente nel gestore eventi, ho superato il punto in cui è necessario aggiungere le colonne.

Ho visto qualcosa che pensavo fosse promettente quando le persone cercavano di determinare quale controllo causasse un post, ma quel codice si basa su page.Request.Params.Get (" __ EVENTTARGET "); e page.Request.Form che sono vuoti.

Dovrei guardare lo stato della sessione, provare a "inviare" l'ID usando la manipolazione lato client o qualche altro metodo (forse un modo subdolo per guardare nello stato che mi manca)?

Grazie per qualsiasi idea !!!

È stato utile?

Soluzione

Il valore inviato da un controllo è disponibile dalla raccolta Request [] anche se sembra che il modulo non sia stato ancora ricostruito.

Dovresti semplicemente essere in grado di ottenere il valore selezionato durante Init () usando quanto segue:

string value = Request["myDropDownID"];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top