26 messaggi dal 26 settembre 2003
ecco il mio codice che poi ho gia' sottoposto alla vostra attenzione:

sub foto (obj as Object, e as eventargs)
dim IdImmobile as string
dim Nomefoto as string
dim Pano as boolean = false
dim vaca as boolean = false
IdImmobile = Clng(IdImmobileSub.text)
Nomefoto = box1.SelectedItem.text

dim strSQL as String ="INSERT INTO IMMAGINI " & "(IDimmobili, NOME_FOTO ) VALUES (" & "'" & IdImmobile & "'," & "'" & NomeFoto & "')"

lblmessage.text = strSQL
ExecuteStatement(StrSQL)
end sub

<asp:DropDownList id="box1" runat="server" ></asp:DropDownList>
<asp:Button id="ButtonAdd" onclick="foto" runat="server" "></asp:Button>

in pratica con questa semplice funzione dovrei prelevare il nomefoto e metterlo nella query.
il problema e' che qualsiasi item io selezioni nella query ci finisce sempre il primo item.
cioe' Box1.selecteditem.text mi restituisce sempre la stessa cosa.
non capisco perche'.
l'unica particolarita' e' che la dropDownlist e' popolata con un get.file, ma quella funzione lavora perfettamente grazie ai suggerimenti di chiccosimo:)

Amidala
2.198 messaggi dal 30 novembre 2001
il problema è che quando fa il postback, ripopola la dropDownlist e quindi il selecteditem è sempre il primo. Per ovviare devi fare in modo di conservarti il selecteditem prima di popolare la dropDownlist .
26 messaggi dal 26 settembre 2003
in codice come si traduce tutto cio'?:)

Amidala
26 messaggi dal 26 settembre 2003
cioe' io la rpima volta la devo popolare.
poi lui la ripopola automaticamente quando?
al click del pulsante oppure alla selezione dell'item?

Amidala
26 messaggi dal 26 settembre 2003
scusa se scrivo tanti messagi.

e cmq autopostback e' false e quindi mi fa selezionare l'item che mi pare.
se lo imposto a true invece mi ritorna sempre il primo item.
solo che anche con autopostbak=false il risultato non cambia.

quindi non ho capito di cosa parli credo:(

necessito codice espicativo.

Amidala
2.198 messaggi dal 30 novembre 2001
da quello che mi dici sembra che il popolamento avviene ad ogni page_load, senza controllare se la pagina è stata inviata per la prima volta, allora in questo caso devi memorizzarti il selectedindex prima di popolare la dropdownlist. Sicuramente quando fai click sul pulsante esegue il postback e quindi riesegue il page_load ripopolando la dropdownlist e perdendo in questo modo il selectedindex (se non salvato prima) e poi esegue la routine del click button.
Quindi scrivi:
IndiceSelezionato = box1.selectedindex
prima del popolamento e dopo:

Nomefoto = box1.Items(IndiceSelezionato).text
26 messaggi dal 26 settembre 2003
questo e' il mio page_load:
sub Page_Load(obj as Object, e as Eventargs)



inputFile.Accept=FileType
if not page.IspostBack then
filldatagrid()
end if

questo e' filldatagrid che credo non cambi nulla per il mio problema:
sub FillDataGrid(Optional EditIndex as Integer=-1)
dim objcmd as new oleDbCommand ("select * from IMMOBILI" , Conn)
dim objReader as OleDbDataReader
try
objcmd.Connection.open()
objreader = objcmd.ExecuteReader()
catch ex as Exception
end try

dgdata.Datasource = objreader
if not EditIndex.Equals(Nothing) then
dgData.EditItemIndex = EditIndex
end if

dgData.Databind()
objReader.close
objcmd.Connection.close()
End sub

il problema e' che la dropdown si popola con un click del mouse che chiama questa funzione:
sub associafoto (sender as object, e as eventArgs)
dim dir as new DirectoryInfo("C:\Inetpub\wwwroot\MarchetinghsWork\foto")
dim f as FileInfo

dim myarray() as string = { }
box1.datasource = myarray
box1.databind()
for each f in dir.getfiles("*.*")
box1.Items.Add(New ListItem(f.name, "1"))

Next

end sub
al click del pulsante get(un altro pulsante) si popola per la prima volta la drop down poi successivamente con un altro pulsante spedisco la query.

quindi non so come salvare l'Indiceselezionato prima di popolare perche' prima di popolare la dop e' vuota e mi da errore.
cioe' mi dice non esiste nessun indice.

Amidala
2.198 messaggi dal 30 novembre 2001
la prima volta chiaramente l'indiceselezionato non esiste, per questo ti dà errore, quindi fai questo controllo dentro il page_load:

if Box1.selectedindex > -1 Then
IndiceSelezionato = box1.selectedindex
Else
IndiceSelezionato = 0
End If

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.