Inserire valore variabili all'interno di una pagina HTML

venerdì 30 luglio 2010 - 18.21

dyd666 Profilo | Junior Member

Salve a tutti
Avrei una richiesta:
Devo inserire , in una pagina aspx contenente codice HTML , il valore di una variabile , che prendo in questo modo:

<% string appo = Request.QueryString["prova"]; ; %>

"prova" è utilizzato in un'altra pagina in questo modo:

<a href="CdA_C.aspx?prova=A-C">A-C</a>

Necessito del valore di prova per questa query facente parte di una DataList:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Il valore della variabile è utilizzato dopo LIKE.
Così non mi funziona però , la pagina non carica alcunchè.
Cosa sto sbagliando?

Grazie , saluti.

mrub Profilo | Junior Member

Nello specifico ti conviene usare un querystringParameter.
Ciao, Mirko.

dyd666 Profilo | Junior Member

Ho cercato in giro ma non sono riuscito a trovare un esempio.
Potreste darmi una mano?

Ho provato a fare in questo modo , ma non funziona:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

mrub Profilo | Junior Member

no riesco a leggere tutta la select ... della clausaola WHERE leggo solo - [Artista] LIKE - cmq..

proverei prima con una where più semplice per controllare la corretta assegnazione del parametro per querystring WHERE ([Artista] LIKE '?%')

nella dichiarazione del querystringparameter specificherei il tipo (è sempre buona regola farlo) type="string".

Se riesci a postare per intero la Select ne possiamo parlare meglio.

Ciao, Mirko

dyd666 Profilo | Junior Member

Ciao , questa è la query completa:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

mrub Profilo | Junior Member

Ho dato un occhiata alla select (dall'html del forum)
mmmmhhh .. non vorrei essere indiscreto ma ad occhio ... mi sembra creata in access ed incollata ... se usi VisualStudio puoi creare la select in modo visuale senza problemi

:)

dyd666 Profilo | Junior Member

Se non ricordo male , me l'ha creata Visual Studio al momento della creazione della definizione del DataSource per il DataList.

mrub Profilo | Junior Member

poco male :)
cmq prova dapprima con il filtro solo sull'artista da quaerystringparameter ...

e dimenticavo ... che valore passi tramite querystring

dyd666 Profilo | Junior Member

Rieccomi.

Ho provato a fare in questo modo ma mi dice che la "colonna prova non esiste".

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alexmed Profilo | Guru

Ciao,

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Il motivo per cui ti dà l'errore probabilmente è dovuto alle parentesi quadre che metti attorno a [prova] (con quelle indichi le colonne).
Non è così che si passa il parametro.
Hai due soluzioni
La prima è il punto interrogativo (?) la seconda è l'uso dalla chiocciolina (@)
Quindi in base alla prima soluzione sarebbe ... LIKE ? + '%'
e la seconda ... LIKE @prova + '%'
Nel caso utilizzassi la chiocciolina a questo punto dovrai correggere anche il nome nel "SelectParameter"

<SelectParameters>
<asp:QueryStringParameter Name="@prova" QueryStringField="prova" Type="String" />
</SelectParameters>

Ciao
Fammi sapere

alexmed

dyd666 Profilo | Junior Member

Grazie innanzitutto

Ho scritto in questo modo ora:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ma ricevo questo errore: "Nessun valore specificato per alcuni parametri necessari."

Cosa sbaglio?

alexmed Profilo | Guru

Prova con questa:
Fai un copia & incolla perchè ti ho sostituito anche filterparameters con SelectParameters

<asp:AccessDataSource ID="Lam" runat="server" DataFile="~/Lam - Copia.mdb"

SelectCommand="SELECT [Artista], [Titolo], [Cover], [Prezzo], [Quantità], [Descrizione], [Genere] , [Cod_Prod] FROM [Prodotti] WHERE [Artista] LIKE ? + '%' AND [Tipo_Prod] = 'Cd' AND [Quantità] > 0 AND [Offerta] = False"
filterexpression="prova = '{0}'">
<SelectParameters>
<asp:QueryStringParameter name="prova" type="String" querystringfield="prova" />
</SelectParameters>
</asp:AccessDataSource>


alexmed

dyd666 Profilo | Junior Member

Fatto , ora mi da quest'errore: "L'indice (in base zero) deve essere maggiore o uguale a zero e minore della dimensione dell'elenco degli argomenti."

alexmed Profilo | Guru

Ti chiedo scusa

Togli anche: filterexpression="prova = '{0}'"

SelectCommand="SELECT [Artista], [Titolo], [Cover], [Prezzo], [Quantità], [Descrizione], [Genere] , [Cod_Prod] FROM [Prodotti] WHERE [Artista] LIKE ? + '%' AND [Tipo_Prod] = 'Cd' AND [Quantità] > 0 AND [Offerta] = False">

<SelectParameters>
<asp:QueryStringParameter name="prova" type="String" querystringfield="prova" />
</SelectParameters>
</asp:AccessDataSource>


alexmed

dyd666 Profilo | Junior Member

Non so se funzioni o meno...
Non mi fa vedere in nulla ,quando in realtà dovrebbe.

La pagina ha questo url: CdA_C.aspx?prova=D-F

L'unico punto in cui parlo di parametri è quello che ti ho elencato prima , all'interno dell'Access Data Source.
Solo lì.

alexmed Profilo | Guru

>Non so se funzioni o meno...
>Non mi fa vedere in nulla ,quando in realtà dovrebbe.
>
>La pagina ha questo url: CdA_C.aspx?prova=D-F
>
La sintassi della query è corretta, resta da capire adesso cosa vuoi ottenere.
Con quella query ottieni tutti i record che iniziano con D-F, quindi ad esempio se un record inizia con D-F-G allora viene fuori.

Dimmi tu qual'è il risultato che vuoi ottenere e come sono i dati dei record.

alexmed
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5