Parametro querystring su gridview

martedì 29 maggio 2007 - 17.12

tdj Profilo | Newbie

vorrei leggere i record di un database (con sqlquery) e visualizzarli in una gridview SOLO se il campo "utente" di ogni record è uguale al LoginName1 (che visualzzo sulla pagina dopo autenticazione). qui il codice :
--------------------------------------------------------------------------------
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT titolo, autore, utente FROM Table1 WHERE (utente = @XXXXX)">
<SelectParameters>
<asp:QueryStringParameter Name="XXXXX" QueryStringField="XXXXX" />
</SelectParameters>
</asp:SqlDataSource>
<asp:LoginName ID="LoginName1" runat="server"
----------------------------------------------------------------------------------
come faccio a mettere LoginName1 in @XXXXX ?
in quale SUB lo devo mettere (va bene la Page_Load ?) ?

grazie...

0v3rCl0ck Profilo | Guru

Ciao,

metti il codice sull'evento OnSelecting del SqlDataSource1, dovresti avere la collezione dei parametri dentro la variabile e.InputParameters


Spero di esserti stato di aiuto
Enjoy It

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

Ottimo ! fatto.

però così mi si incacchia !
-------------------------------
Protected Sub Seleziona(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
e.Command.Parameters("@XXXXX").Value = LoginName1
End Sub

e mi dice :
-------------
Dettagli eccezione: System.ArgumentException: Nessun mapping esistente dal tipo di oggetto System.Web.UI.WebControls.LoginName a un tipo nativo di provider gestito noto.

come faccio a mettere il valore del campo LoginName1 nel campo @XXXXX ?

grazie

tdj Profilo | Newbie

risolto (da solo). ho scritto questo :

Protected Sub Seleziona(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
Dim nomeutente As String = User.Identity.Name
e.Command.Parameters("@XXXXX").Value = nomeutente
End Sub

e funziona !
graziecomunque

0v3rCl0ck Profilo | Guru

Il controllo LoginName viene usato per mostrare un messaggio di benvenuto all'utente (vedi: http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.loginname.aspx), questo controllo va a leggere la proprità User della classe Page e dato che è quello che interessa a te, prova ad impostare il parametro di select così:

e.Command.Parameters("@XXXXX").Value = Page.User.Identity.Name


Spero di esserti stato di aiuto
Enjoy It

http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

eheh, hai mandato il post proprio mentre ti avevo risposto con una cosa del tutto simile

accetta una risposta, così chiudiamo il thread.

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

un'ultima cosa (attinente) : come recupero l'indirizzo e-mail inserito in fase di creazione utente con lo "Strumento di Amministrazione sito Web" ?

grazie

0v3rCl0ck Profilo | Guru

Sinceramente lo "Strumento di Amministrazione sito Web" non lo mai usato, perchè ho sempre fatto l'autenticazione collegato ad un database e ho implementando tutte le classi necessarie, quindi non so come aiutarti.

Controlla se lui inserisce gli utenti nel Web.Config e fammi sapere...magari appena sono a casa posso provare a fare un progetto utilizzando quel metodo.

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

bella domanda ! credo proprio di si ...

0v3rCl0ck Profilo | Guru

riesci a mandarmi il tuo progetto di esempio?

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

Volentieri ! eccolo qui.
io vorrei vedere l'indirizzo e-mail dell'utente, se esiste, nella detailsview, non quello loggato.
se non esiste, blank.
in poche parole vorrei che un utente (registrato, loggato) abbia la possibilità di vedere la e-mail di un altro utente registrato.

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server" >


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title id="H1">details</title>
</head>
<body>
<form id="form1" runat="server">
<div> &nbsp;

&nbsp;
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="chiave"
DataSourceID="SqlDataSource1" Height="50px" Style="z-index: 100; left: 16px;
position: absolute; top: 106px" Width="125px">
<Fields>
<asp:BoundField DataField="chiave" HeaderText="chiave" InsertVisible="False" ReadOnly="True"
SortExpression="chiave" />
<asp:BoundField DataField="utente" HeaderText="utente" SortExpression="utente" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [chiave], [utente] FROM [Table1] WHERE ([chiave] = @chiave)">
<SelectParameters>
<asp:QueryStringParameter Name="chiave" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:LoginName ID="LoginName1" runat="server" Style="z-index: 101; left: 16px; position: absolute;
top: 68px" />
&nbsp;

</div>
</form>
</body>
</html>

0v3rCl0ck Profilo | Guru

cioè in pratica tu vorresti avere la lista degli utenti con i loro dettagli?

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

solo 1 utente per volta e solo l'email (che sta nel sistema di autenticazione di asp)...

0v3rCl0ck Profilo | Guru

sta sera se riesco ci guardo =)

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

lunga la sera ...

0v3rCl0ck Profilo | Guru

eh lo so, mi devi scusare ma ho avuto giorni caotici...anke stax e domani non ho proprio tempo per guardarci, è più facile mercoledì (speriamo )

http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

Scusami ma non ti riesco a rispondere, in quest'ultimo periodo non ho tempo neanke di creare un progetto di esempio...io comunque ti consiglio di gestire la parte del login su database, con un metodo canonico.

ciao e scusami ancora

http://blogs.dotnethell.it/Regulator/

tdj Profilo | Newbie

no problem. grazielostesso.
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