Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Controllo Irreperibile...

    Salve, sto provando a fare una Update tramite una colonna EditCommandColumn di un Datagrid..

    Il problema e' che quando prendo tutti i valori digitati, non riesco a prelevarne uno. Si tratta dell'unica dropdownlist costruita precedentemente (nell'evento di EDIT) e piazzata in un placeholder.

    Ora, una volta giunto alla Sub che si occupa dell'update, ho provato a reperire il valore scelto dalla dropdown in tutti i modi...quello classico :

    codice:
     Dim DD as New DropDownList
     DD = e.Item.FindControl("dd_gruppi")
     Response.write( DD1.SelectedItem)
    Ma qui si lamenta "Object reference non set to an Istance of an object" ...

    Quello un po' piu' completo :

    codice:
    	Dim DGI as Datagriditem
    	DGI = grid_licenze.items(grid_licenze.EditItemIndex)
    	response.write(DGI.Cells(0).Controls(1))
    	response.write("
    ")
    		
    	Dim PH as New PlaceHolder
    	PH = DGI.FindControl("ph_gruppi")
    	response.write(PH.ID)
    	response.write("
    ")
    		
    	Dim DD as New Control
    	DD = PH.FindControl("dd_gr")
    	response.write(DD)
    	response.write("
    ")
    Solo che la fetentona finale (DD) scompare !

    Il bello è che nelle response.write di controllo intermedie, mi restituisce il i valori corretti...(la prima restituisce una textbox che è quella effettivamente presente in quella posizione e la seconda l'id del placeholder) ..

    Perche' non riesco a raggiungere la DropDown ?

    Ora mi chiedo, ma fra un evento di edit ed un evento di update non ci sono forse gli stessi Controlli disponibili ??

    Ho provato anche a visualizzare l'EditItemIndex dell'Item selezionato e corrisponde....

  2. #2
    Nella tua domanda hai scritto una frase:
    Si tratta dell'unica dropdownlist costruita precedentemente
    Quando esegui da codice il postback e cerchi di prendere il valore scelto dall'utente, devi accertarti di averlo ricreato nello stesso modo in cui lo fai prima del postback, altrimenti esso non può essere recuperato dal "FindControl".

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ...infatti facendo varie prove ho notato che riesco ad individuare il DataGridItem, Il PlaceHolder ma non la DropDownList !

    Alcune domande ...

    Se costruisco la DropDownList con un DataBind e non da codice lato server poi in postback me la trova ?

    Come faccio a ricostruirla esattamente mantenendo al primo posto il ListItem selezionato ?

    Serve a qualcosa attivare l EnableViewState della DropDownList costruita da codice lato server ?

    Grazie per l attenzione...

  4. #4
    Se inserisci il dropdown direttamente nel datagrid e non da codice non dovresti avere problemi.

    Per ricostruirlo ti è sufficiente ricreare lo stato che aveva il datagrid prima del postback, dunque ridevi rimettere la riga in modalità edit e inserire nel placeholder di quella riga il drodownlist senza inserire nuovamente i dati con il databind.

    Una tecnica che avevo usato in passato era inserire nel viewstate prima del postback la riga da mettere in modalità edit, quindi al postback, nell'evento Page_Load controllavo la presenza di quel valore nel viewstate e ricostruivo lo stato del datagrid.

    Una tecnica alternativa è riprendere direttamente il valore del dropdownlist dalla collection request. Prima del postback:
    codice:
    ViewState("id_ddl")=id_drop.ClientID
    Quindi, dopo il postback:
    codice:
    valore=Request(ViewState("id_ddl")).ToString();
    Infine il viewstate del dropdownlist serve per mantenere il suo stato, nel tuo caso devi lasciarlo su enabled.
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.