di: Angelo Ranucci 06 Settembre 2006
Listato 6. Implementazione del Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
PopolamentoListeRuoli(); // popolamento liste ruoli
PopolamentoListeUtenti(); // popolamento lista utenti in ruolo
}
Il Page_Load si occupa solo di chiamare i metodi per popolare le liste che abbiamo già esaminato.
Affinché il tutto funzioni, dobbiamo anche implementare il gestore dell'evento Page_PreLoad che viene lanciato con il vecchio view state.
Listato 7. Implementazione del Page_PreLoad
protected void Page_PreLoad(object sender, EventArgs e)
{
if (ListBoxUtentiNon.SelectedItem != null)
Roles.AddUserToRole(ListBoxUtentiNon.SelectedValue, ListBoxRuoli.SelectedValue);
if (ListBoxUtenti.SelectedItem != null)
Roles.RemoveUserFromRole(ListBoxUtenti.SelectedValue, ListBoxRuoli.SelectedValue);
}
L'esigenza di usare il Page_PreLoad nasce dal fatto che quando vogliamo ad esempio aggiungere un utente ad un ruolo, dobbiamo prelevarlo dalla ListBoxUtentiNon ed al prossimo PostBack visualizzarlo nella lista ListBoxUtenti. Queste due liste sono però popolate partendo dal ruolo selezionato nella lista ListBoxRuoli che non appena avviene il PostBack ripopola le due liste facendo perdere il SelectedValue precedente.
Durante l'esecuzione di Page_PreLoad abbiamo ancora a disposizione il valore selezionato ed il ripopolamento avviene successivamente nel Page_Load.
Inoltre, nelle liste ListBoxRuoli, ListBoxUtenti e ListBoxUtentiNon, dobbiamo impostiare la proprietà: AutoPostBack="True".
A questo punto possiamo testare la nostra pagina Ruoli.aspx e verificare che il tutto funzioni.
Entriamo come Admin, cioè con l'utente Asdrubale. Selezionando il ruolo Admin sulla prima lista ci troviamo nella seguente situazione:
Figura 6. Test: situazione iniziale
L'applicazione riconosce un solo ruolo Admin assegnato solo all'utente "Asdrubale". Gli altri utenti sono visualizzati nella lista degli Utenti fuori.
Aggiungiamo un nuovo ruolo specificando un nome diverso da Admin. Ad esempio Risorse e lo assegnamo agli utenti Pippo e Pluto. Per farlo selezioniamo Risorse sulla lista dei Ruoli e poi Pippo e Pluto sulla lista degli Utenti fuori. Appena selezionato, un utente passa da una lista all'altra.
Alla fine di questa operazione lo scenario diventa il seguente:
Figura 7. Test: dopo aver aggiunto Risorse e spostato Pippo e Pluto
Anche la lista Cancella ruoli si è aggiornata.
Proviamo ora ad aggiungere NonnaPapera a Risorse e poi a toglierla per verificare che funziona anche il passaggio inverso.
Verifichiamo che aggiungendo di nuovo il ruolo Risorse ci ritorna un messaggio di errore. Verifichiamo poi anche la cancellazione di un ruolo.
L'esempio sviluppato in questo articolo, privato del database per comodità, può essere scaricato da qui.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |