Estrapolare valore da un item selezionato in una ListView

giovedì 14 gennaio 2010 - 15.35

tetella Profilo | Newbie

Ciao, sono una nuova utente del forum e saluto tutti!
Vi pongo il mio "dilemma": Ho una ListView che prende i valori dal database, tramite pulsante (con command name select) seleziono un item e ho necessità di inserire il valore di una colonna dell'item selezionato in una variabile string o in una label.
Posto il codice:

<asp:ListView ID="ListView1" runat="server" DataKeyNames="IdPost" DataSourceID="SqlDataSource1">
<ItemTemplate>
<span style="color:White; font-weight:bold">Nome e cognome:</span>
<asp:Label ID="Nome_e_cognomeLabel" runat="server" Text='<%# Eval("Nome_e_cognome") %>' />
<br />
<span style="color:White; font-weight:bold">Matricola:</span>
<asp:Label ID="MatricolaLabel" runat="server" Text='<%# Eval("Matricola") %>' />
<br />
<span style="color:White; font-weight:bold">Corso di laurea:</span>
<asp:Label ID="Corso_di_laureaLabel" runat="server" Text='<%# Eval("Corso_di_laurea") %>' />
<br />
<span style="color:White; font-weight:bold">Oggetto:</span>
<asp:Label ID="OggettoLabel" runat="server" Text='<%# Eval("Oggetto") %>' />
<br />
<span style="color:White; font-weight:bold">Messaggio:</span>
<asp:Label ID="MessaggioLabel" runat="server" Text='<%# Eval("Messaggio") %>' />
<asp:Button ID="SelButton" runat="server" CommandName="Select" Text="Seleziona"/>
</span>
</ItemTemplate>
</asp:ListView>

Vi ringrazio in anticipo!

paoval72 Profilo | Senior Member

>Ciao, sono una nuova utente del forum e saluto tutti!
Ciao e benvenuta.
Come sempre, spero di avere capito bene la questione.
Normalmente (di solito non uso i datasource), farei così (testato):
associo al button l'evento onclick:
... <asp:Button ID="SelButton" runat="server" CommandName="Select" Text="Seleziona" onclick="SelButton_Click"/>...
Se so già quale valore devo prendere, lo posso associare tramite il CommandArgument:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Altrimenti, recupererei tutto quel che voglio lato server. Quindi, inserisco e registro l'evento click:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Se vuoi, si può accorpare ancora il passaggio. E' lo stesso, ma razionalizzato:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Spero che ti possa servire.
Ciao,
PV

tetella Profilo | Newbie

Ciao, ti ringrazio per il tentativo di aiuto!
Per dimenticanza avevo omesso di precisare che utilizzo il vb.net, per cui la seconda soluzione che mi hai proposto non è fattibile e purtroppo non sono tanto pratica da poter tradurla in vb.net!
Comunque sia, facendo infinite ricerce e prove, ho tentato un'altra strada, ovvero associare al click del pulsante per la selezione il seguente codice:

Protected Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
Dim sel As Integer
Dim conn As New SqlConnection()
conn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
Dim SelMatricola As SqlCommand = New SqlCommand("SELECT (Matricola) FROM [PostIt]", conn)
Dim reader As SqlDataReader
conn.Open()
Dim reader As SqlDataReader = SelMatricola.ExecuteReader()
Do While reader.Read()
Selezione.Text = reader.GetString(sel).ToString
Loop
reader.Close()
conn.Close()
End Sub

Però genera errore : "IndexOutOfRangerException non è stata gestita dal codice utente" "Indice oltre i limiti della matrice."
Ho provato a sostituire il parametro di gestring con un valore maggiore di 0 (con 0 funziona), es. Selezione.Text = reader.GetString(0).ToString e mi dà lo stesso errore! Il problema è del loop del reader? Sapresti dare una soluzione a questo? Grazie di nuovo.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5