[#] Problemi con la generazione di eventi

venerdì 08 maggio 2009 - 09.16

Serrus Profilo | Newbie

Ciao a tutti, sono un utente nuovo di DotNetHell.it ( e anche un neofita della programmazione), mi sto cimentando nello sviluppo web ASP.NET, utilizzo C# ( con FMW 2.0) e Visual Studio 2005.
Sicuramente il mio problema Vi risulterà banale, ma non riesco proprio a venirne fuori

adesso riporto il mio problema:

ESIGENZA:
1) permettere all'utente di caricare delle immagini e visualizzare la loro anteprima sulla pagina web in seguito al caricamento ( questo sono riuscito a farlo); 2)Permettere all'utente di rimuovere le immagini affiancando ad ogni anteprima immagine un button di rimozione (qui riscontro il problema che descrivo di seguito)

PROBLEMA:
al caricamento dell'immagine riesco a creare correttamente il pulsante visualizzandolo sotto la rispettiva immagine, solo che NON riesco a indicargli di generare l'evento di cancellazione al click... il comando NomeBottone.Click += new eventhandler(NomeBottone_click) non funziona sul pulsante generato (funziona solo sui pulsanti statici già presenti al load della pagina.


ESEMPIO PRATICO DEL PROBLEMA:
ho realizzato un mini-progetto in visual studio 2005 contenente solo il problema specifico che descrivo sopra, potete scaricarlo qui:

http://www.etecna.it//UserFile/Imag...menti/Prova.rar


Grazie in anticipo.

Matteo

4mane Profilo | Junior Member

Nell'evento click del pulsante di rimozione dell'immagine scrivi quanto segue:
protected void btnRimuoviImmagine_Click(object sender, System.EventArgs e) {     string filePath = Request.PhysicalApplicationPath;         if (Page.IsPostBack) {             // aggiungiamo il nome della nostra cartella al path             filePath += "Immagini/" += hidImmagine.Value;             // elimina il file             System.IO.File.Delete(filePath);             hidImmagine.Value = ""; // carico l'immagine di default nell'anteprima             imgPreview.ImageUrl = "App_Themes/Default/Images/noimage.jpg";             hidImmagine.Value = "";         } }
Vedi che qui uitlizzo un cammpo HiddenField, ossia hidImmagine, per memorizzare il nome dell'immagine.
Fammi sapere se funziona.

Serrus Profilo | Newbie

Ciao 4Mane, Innanzitutto grazie mille per la risposta, Non avevo pensato si potesse fare in questo modo ( molto più comodo della lunga scappatoia che avevo trovato io)

Purtroppo però il problema principale resta l'impossibilità di eseguire il codice dell'evento..
da codice sembra tutto ok.. solo che quando vado a cliccare il button generato dinamicamente dall'utente l'evento non viene seguito ( ho provato a mettere un break point nel button_click() ma non vi giunge nemmeno.

in questo esempio è mostrato esattamente il tipo di problema:

http://www.etecna.it//UserFile/Image/documenti/Prova.rar

come si può vedere, il comando Button.Click += new EventHandler(this.Button_Click) funziona solamente sui pulsanti già presenti, ma non su quelli generati dinamicamente

4mane Profilo | Junior Member

Mi sa che non si può fare la cosa perchè http è stateless.
Pertanto cliccando su quel bottone viene eseguito nuovamente il pageload e non hai più i controlli sul lato client quindi li devi ricreare.
In poca sostanza le funzioni del secondo bottone le devi creare lato client.

Serrus Profilo | Newbie

Azz.... ecco perchè allora... Grazie mille lo stesso per l'attenzione e l'impegno dedicatomi.... vedrò di "javascriptare" un po'....

A presto e grazie ancora...

Matteo :-)
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