Controllo su gridview

giovedì 10 maggio 2007 - 13.13

tdj Profilo | Newbie

ho una colonna hyperlink su una gridview. la uso per passare da "pagina master" a "pagina dettaglio". se però l'utente non è loggato vorrei farlo andare alla pagina di login. questo è quanto ho scritto e non funziona : anche se il campo login name è blank passa sempre sulla pagina "details".
cosa e dove sto sbagliando ?
grazie

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If "LoginName1" = "" Then
Response.Redirect("Login.aspx")
Else
Response.Redirect("details.aspx")
End If

alx_81 Profilo | Guru

Ciao!
>ho una colonna hyperlink su una gridview. la uso per passare
>da "pagina master" a "pagina dettaglio". se però l'utente non
>è loggato vorrei farlo andare alla pagina di login. questo è
>quanto ho scritto e non funziona : anche se il campo login name
>è blank passa sempre sulla pagina "details".
>cosa e dove sto sbagliando ?
>grazie
>
>Protected Sub GridView1_SelectedIndexChanged(ByVal sender As
>Object, ByVal e As System.EventArgs)
> If "LoginName1" = "" Then
> Response.Redirect("Login.aspx")
> Else
> Response.Redirect("details.aspx")
> End If

Non vorrei commettere errori sottolineandoti l'errore che fai, ma la condizione dell'if è proprio scritta così?
perchè in tal caso stai confrontando due stringhe costanti, sempre diverse..
è come se facessi

If "a" = "b" then
...
else
...
end if

siccome il test è sempre diverso, ci si ritroverà sempre nell'else..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

tdj Profilo | Newbie

>Protected Sub GridView1_SelectedIndexChanged(ByVal sender As
>Object, ByVal e As System.EventArgs)

If "A" = "A" Then

> Response.Redirect("Login.aspx")
> Else
> Response.Redirect("details.aspx")
> End If

ho provato in questo momento a fare proprio così e va sempre su "details". scusa ...

alx_81 Profilo | Guru

>ho provato in questo momento a fare proprio così e va sempre
>su "details". scusa ...
Premesso il fatto che se utilizzi la forms authentication di aspnet, la redirect te la fa da solo, accorgendosi che l'utente non è loggato, ti chiedo di postare il tuo codice per intero. Perchè c'è da capire bene quello che succede.
Alx81 =)

http://blogs.dotnethell.it/suxstellino

tdj Profilo | Newbie

mi hai aperto un nuovo orizzonte con "la forms authentication di ASP.net" e sto cercando informazioni e sopratutto esempi. mi piacerebbe usare quella perchè, come ci siamo detti fin dall'inizio, vorrei scrivere meno codice possibile (che conosco pochissimissimo) ed utilizzare, quanto più possibile, gli strumenti che mette a disposizione VWD (& co). hai qualche suggerimeto su dove e cosa leggere (sopratutto esempi) ? grazie !

tdj Profilo | Newbie

però credo anche di stare facendo qualche errore madornale di impostazione e perciò ecco qui tutto il codice. ti prego : poche pernacchie !

<%@ 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">

Protected Sub DataList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If "A" = "A" Then
Response.Redirect("Login.aspx")
Else
Response.Redirect("details.aspx")
End If
End Sub

Protected Sub LoginStatus1_LoggingOut(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs)

End Sub
</script>

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

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;
<br />
&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
GridLines="None" Style="z-index: 100; left: 12px; position: absolute; top: 161px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="505px" Height="104px">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="titolo" HeaderText="titolo" SortExpression="titolo" />
<asp:BoundField DataField="autore" HeaderText="autore" SortExpression="autore" />
<asp:BoundField DataField="genere" HeaderText="genere" SortExpression="genere" />
<asp:BoundField DataField="utente" HeaderText="utente" SortExpression="utente" />
<asp:BoundField DataField="cercooffro" HeaderText="cercooffro" SortExpression="cercooffro" />
<asp:HyperLinkField Text="Contatta Utente" DataNavigateUrlFields="chiave"
DataNavigateUrlFormatString="details.aspx?ID={0}" />
</Columns>
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
&nbsp;
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [Table1] ORDER BY [utente], [genere], [autore]" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [Table1] WHERE [chiave] = @original_chiave AND [titolo] = @original_titolo AND [autore] = @original_autore AND [genere] = @original_genere AND [utente] = @original_utente AND [cercooffro] = @original_cercooffro" InsertCommand="INSERT INTO [Table1] ([titolo], [autore], [genere], [utente], [cercooffro]) VALUES (@titolo, @autore, @genere, @utente, @cercooffro)" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [Table1] SET [titolo] = @titolo, [autore] = @autore, [genere] = @genere, [utente] = @utente, [cercooffro] = @cercooffro WHERE [chiave] = @original_chiave AND [titolo] = @original_titolo AND [autore] = @original_autore AND [genere] = @original_genere AND [utente] = @original_utente AND [cercooffro] = @original_cercooffro">
<DeleteParameters>
<asp:Parameter Name="original_chiave" Type="Int32" />
<asp:Parameter Name="original_titolo" Type="String" />
<asp:Parameter Name="original_autore" Type="String" />
<asp:Parameter Name="original_genere" Type="String" />
<asp:Parameter Name="original_utente" Type="String" />
<asp:Parameter Name="original_cercooffro" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="titolo" Type="String" />
<asp:Parameter Name="autore" Type="String" />
<asp:Parameter Name="genere" Type="String" />
<asp:Parameter Name="utente" Type="String" />
<asp:Parameter Name="cercooffro" Type="String" />
<asp:Parameter Name="original_chiave" Type="Int32" />
<asp:Parameter Name="original_titolo" Type="String" />
<asp:Parameter Name="original_autore" Type="String" />
<asp:Parameter Name="original_genere" Type="String" />
<asp:Parameter Name="original_utente" Type="String" />
<asp:Parameter Name="original_cercooffro" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="titolo" Type="String" />
<asp:Parameter Name="autore" Type="String" />
<asp:Parameter Name="genere" Type="String" />
<asp:Parameter Name="utente" Type="String" />
<asp:Parameter Name="cercooffro" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
<asp:LoginName ID="LoginName1" runat="server" Style="z-index: 102; left: 436px; position: absolute;
top: 136px" />
&nbsp; &nbsp;

&nbsp; &nbsp;&nbsp;

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

alx_81 Profilo | Guru

>però credo anche di stare facendo qualche errore madornale di
>impostazione e perciò ecco qui tutto il codice. ti prego : poche
>pernacchie !
>
>Protected Sub GridView1_SelectedIndexChanged(ByVal sender As
>Object, ByVal e As System.EventArgs)
> If "A" = "A" Then
> Response.Redirect("Login.aspx")
> Else
> Response.Redirect("details.aspx")
> End If
> End Sub
>

quell' "A" = "A", lo hai messo per prova in base al post che ti ho illustrato io prima?
utilizza un test utile, comunque sia.. così con "A" = "A" deve per forza andare alla login.aspx..
se va sulla details, è probabile che sulla login.aspx ci sia una ulteriore redirect verso la detail..
ma entra più in profondo con il test. Controlla se effettivamente entri nell'else o nell'if..
altrimenti non riesci a capire..
invece di una response.redirect, utilizza la response.write.. e vedi che succede..
per la FormsAuth.. cerca su msdn.. trovi tutti gli esempi che vuoi
Alx81 =)

http://blogs.dotnethell.it/suxstellino

tdj Profilo | Newbie

non voglio rompere ulteriormente. continuo a studiare. ti assicuro prò che la mia pagina di login è "pura" : c'è solo quanto "scritto" via VWD. io non ci ho messo proprio le manine.

l'unica conferma che ti chiedo : quell'IF messo lì (Protected Sub GridView1_SelectedIndexChanged) è nel posto giusto ?
è quello "il momento" in cui io clicco sull'hyperlink ?

thanks !

alx_81 Profilo | Guru

>non voglio rompere ulteriormente. continuo a studiare. ti assicuro
>prò che la mia pagina di login è "pura" : c'è solo quanto "scritto"
>via VWD. io non ci ho messo proprio le manine.
>
>l'unica conferma che ti chiedo : quell'IF messo lì (Protected
>Sub GridView1_SelectedIndexChanged) è nel posto giusto ?
>è quello "il momento" in cui io clicco sull'hyperlink ?
>
>thanks !
no, quello lo hai quando cambi l'indice selezionato sulla gridview..
per l'hyperlink column devi gestire l'evento rowcommand..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

tdj Profilo | Newbie

lo dovevo mettere qui !

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If (Request.IsAuthenticated = False) Then
Server.Transfer("Login.aspx")
Else
Server.Transfer("details.aspx?original_chiave")
End If

End Sub

ora funziona ! adesso però come faccio a fagli leggere il parametro (original_chiave) nella pagina chiamata (details.aspx) ?
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