LETTURA DATI RICHIAMATI SU UNA NUOVA PAGINA DA UN BUTTON DOPO UNA DETA...

mercoledì 24 febbraio 2010 - 22.17

mauri1961 Profilo | Senior Member

Da una pagina contenente una details view partente da una grid view
ho intenzione, attraverso un button, di visualizzare su un'altra pagina
il contenuto di una tabella che contiene un dato presente nella detailsview suddetta.

Il problema è che non so come gestire la cosa:

Ho provato a fare cosi ma non funziona:

1. il button attraverso onlink richiama la seguente sub

Sub ripartizioni()
Dim conn As New SqlConnection("Data Source=PC-MAURIZIO; Initial Catalog=CASSAWEB;Integrated Security=SSPI")
Dim strsql As String
strsql = "select dit_codice, dit_ragsoc from web_impr where dit_codice=coditta"
Dim command As New SqlCommand(strsql, conn)

Try
conn.Open()
Dim reader As SqlDataReader
reader = command.ExecuteReader()
If reader.Read() Then
FormsAuthentication.SetAuthCookie(reader("dit_codice"), False)
Session.Add("linkditta", reader("dit_codice"))
Response.Redirect("vw-ripa.aspx")
End If
Catch ex As Exception
Finally
If Not conn Is Nothing Then
conn.Close()
End If
End Try
End Sub


il campo CODITTA lo avrei messo come parametro nel sqldatasource della detailview
ma non sono per niente convinto che funzioni in questo modo

<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:CASSAWEBConnectionString %>"
SelectCommand="SELECT * FROM [WEB_IMPR]"
filterExpression="dit_codice= {0}">

<SelectParameters>
<asp:Parameter DefaultValue="DIT_CODICE" Name="CODITTA" />
</SelectParameters>

<FilterParameters>
<asp:ControlParameter Name="dit_codice" ControlID="gridview1"
propertyname="SelectedValue" />
</FilterParameters>
</asp:SqlDataSource>

CIAO. MAURIZIO

paoval72 Profilo | Senior Member

Ciao, ancora io... Spero di non essere il tuo incubo!
Direi che devi recuperare il campo "coditta"
La più semplice delle soluzioni è andare a cercare direttamente il controllo che ti serve. Se non ricordo male, nel tuo detailview, il dit_codice è il 1° campo. Quindi:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ovviamente, per evitare che qualcuno faccia usi "impropri", il button dovrebbe seguire le regole del detailview: quindi, compare l'uno solo quando compare anche l'altro

PV

mauri1961 Profilo | Senior Member

Probabilmente l'incubo sono io....
cmq... guardando nelle varie funzioni di detailsview ho scoperto che con HYPERLINKFIELD si può aprire una pagina partendo dal detail... (mi sembra stilisticamente più corretto che mettere un pulsante...)

quindi il codice impostato ora è questo

<asp:HyperLinkField headertext="Codice Ditta" SortExpression="dit_codice"
DataTextField="dit_codice" DataNavigateUrlFormatString="vw-ripa.aspx?coditta={0}"
DataNavigateUrlFields="dit_codice" />

e funziona...

ora aprendo la nuova pagina come lo tiro fuori questo dato?

con un sqldatasource ??

paoval72 Profilo | Senior Member

Rieccomi.
>quindi il codice impostato ora è questo
><asp:HyperLinkField headertext="Codice Ditta" SortExpression="dit_codice"
>DataTextField="dit_codice" DataNavigateUrlFormatString="vw-ripa.aspx?coditta={0}"
> DataNavigateUrlFields="dit_codice" />
>e funziona...
Bene!
>ora aprendo la nuova pagina come lo tiro fuori questo dato?
>con un sqldatasource ??
No, dovresti recuperare la querystring sulla nuova pagina:
Dim codice_selezionato as String = Request.QueryString("coditta").ToString()
Fammi sapere.
PV

mauri1961 Profilo | Senior Member

si ce l'ho fatta.... e se devo essere sincero ci sono arrivato da solo...

eureka!!!

grazie, alla prossima (non è finita...)

ciao

paoval72 Profilo | Senior Member

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