107 messaggi dal 10 aprile 2006
Salve,
sulla form del mio sito ho una serie di immagini e su ognuna di essa devo poter fare con doppio click sopra una chiamata a una pagina che sarà comune a tutti ma dai contenuti diversi;
mi immagino quindi che il link venga fatto con la chiamata ad una pagina passando l'id del soggetto interessato e legato all'immagine stessa.
Vorrei chiedere :
1) come va gestita la chiamata con il dopio click sull'immagine e passando l'ID di riferimento e innanzitutto come lo prelevo considerato che sono una serie di immagini create con :
              <ItemTemplate>
                  <li>
                    <img src="images/imgcat/small/<%# Eval("NOMEIMAGE")  %>" border="2" vspace="6" hspace="6"  alt="" data-zoom-image="images/imgcat/large/<%# Eval("NIMAGELARGE") %>" /> 
               
                      <p align="center">
                        <%# Eval("DESCRCATALOGO") %>
                     </p>
                  </li>
              </ItemTemplate>



2) la pagina creata dovrà avere caratteristiche su cui saranno abilitate funzionalità a secondo se la persona si è loggata o meno; nella fattispecie dovrà avere dei contenuti diversi a secondo del soggetto associato all'immagine scelta su cui ho cliccato in precedenza ma ad esempio avrà un controllo (ad esempio un bottone upload) sopra che si abiliterà o sarà visibile solo se l'interessato è loggato. Come va fatto questo ?
Modificato da navigatore65 il 28 ottobre 2014 18.10 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
puoi gestire l'evento doppioclick aggiungendo un attributo ondblclick sul tag <img>. Così potrai eseguire il javascript necessario ad effettuare il cambio di pagina.
<img ondblclick="window.location.href='pagina.aspx?ID=<%# Eval("CAMPOID") %>'" src="images/imgcat/small/<%# Eval("NOMEIMAGE")  %>" border="2" vspace="6" hspace="6"  alt="" data-zoom-image="images/imgcat/large/<%# Eval("NIMAGELARGE") %>" /> 

Tu ovviamente sostituisci CAMPOID con il vero nome del campo che contiene l'ID del soggetto.

Comunque, io penso che ricorrere al doppioclick sia poco intuitivo e dunque sconsigliabile. A meno che questa non sia un'applicazione intranet (e dunque puoi spiegarlo personalmente agli utenti), poche persone riusciranno a capire che vi è la possibilità di cambiare pagina.
Il comportamento tipico delle applicazioni web è che la navigazione verso un'altra pagina avvenga con un click singolo.

navigatore65 ha scritto:

la pagina creata dovrà avere caratteristiche su cui saranno abilitate funzionalità a secondo se la persona si è loggata o meno

Ok, se stai usando la FormsAuthentication, allora potrai sapere se l'utente è loggato dalla proprietà User.Identity.IsAuthenticated. In base al suo valore, mostrerai o nasconderai degli elementi dell'interfaccia. In questo esempio, la visibilità di un asp:PlaceHolder è strettamente legata al valore di IsAuthenticated.
placeHolder1.Visible = User.Identity.IsAuthenticated;


ciao,
Moreno
Modificato da BrightSoul il 29 ottobre 2014 22.26 -

Enjoy learning and just keep making
107 messaggi dal 10 aprile 2006
Grazie Moreno userò il click e per la FormAutentication con va creata ?
è una form che compare nella mia ipotetica cartella Admin e che viene gestita dal pannello amministrazione per intenderci ?
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

navigatore65 ha scritto:

è una form che compare nella mia ipotetica cartella Admin

Realizzare una form di login che sfrutti la FormsAuthentication è molto semplice: aggiungi un controllo asp:Login alla tua pagina e vedrai che si presenta con due caselle di testo, da cui l'utente potrà digitare username e password.

Ora bisogna aggiungere la logica per verificare che lo username e la password siano corretti. Dunque gestisci l'evento Authenticate del controllo asp:Login, che diventerà più o meno così:
<asp:Login runat="server" OnAuthenticate="ControllaDati">

Definiamo la funzione ControllaDati nel codefile della pagina.
protected void ControllaDati(object sender, AuthenticateEventArgs e)
{
    var controlloLogin = sender as System.Web.UI.WebControls.Login;

    var username = controlloLogin.UserName;
    var password = controlloLogin.Password;

    //qui controlla se lo username e la password esistono nel tuo db

    //infine (MOLTO IMPORTANTE) imposta e.Authenticated su true o false
    //Questo determinerà se il login ha avuto successo o no.

    e.Authenticated = ...; //true o false
}


In pochi passi sei riuscito a sfruttare la FormsAuthentication. Quando l'utente ha effettuato il login con successo, vedrai che la proprietà User.Identity.IsAuthenticated di cui ti parlavo nel post precedente sarà valorizzata a true.

ciao,
Moreno

Enjoy learning and just keep making
107 messaggi dal 10 aprile 2006
Ciao Moreno,
grazie per tutto; io ho un problema che ti ho esposto per quanto concerne la gestione amministrativa delle pagine; se non risolvo posso fare in questo modo allora, gestire il tutto manualmente ?
Saluti
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
esatto. Tu cerca comunque di usare la Membership e, se anche non dovessi riuscirci, puoi sempre usare questo sistema "manuale" (dovrai giusto fare una query al db per verificare che user e pass siano corretti).

In un modo o nell'altro, andrai comunque a sfruttare la FormsAuthentication e dunque potrai accedere alle proprietà User.Identity.IsAuthenticated e User.Identity.Name di cui abbiamo parlato.

ciao,
Moreno

Enjoy learning and just keep making
107 messaggi dal 10 aprile 2006
Ciao, ma sai nulla di questo problema che ho ?
nel senso che non riesco più a gestire il pannello amministrativo sito ?
Mi da sempre sto cavolo di errore che non si riesce a connettere al DB
Il resto funziona intendo l'applicazione.
Altra cosa... volendo gestire la FormAuthentication manualmente come faccio a memorizzare i dati nel DB se il pannello non mi funziona ?
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

navigatore65 ha scritto:

Mi da sempre sto cavolo di errore che non si riesce a connettere al DB

Calma e razionalità. Dobbiamo fidarci di quello che ci dice l'errore, può darsi che la connection string sia sbagliata, oppure SQL Express non sta funzionando.

Per ora dimentica il pannello, bisogna verificare se riesci a collegarti al db da codice C# (o VB.NET).

Se usi il C#, prova a mettere questo nel Page_Load di una pagina qualsiasi. Magari crea una nuova pagina a puro scopo di test.
var connString = ConfigurationManager.ConnectionStrings["NomeConnectionStringCheHaiNelWebConfig"].ConnectionString;
using (var conn = new SqlConnection(connString)){
  conn.Open();
}

Se hai un errore, devi controllare che la connection string sia corretta. Magari non hai scritto bene il nome dell'istanza, oppure il file mdf non esiste, e così via.

Mostra la connection string che stai usando.

ciao,
Moreno
Modificato da BrightSoul il 01 novembre 2014 12.42 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.