30 messaggi dal 06 settembre 2002
Ciao a tutti!
Sto costruendo un controllo web personalizzato (che chiameremo controlloA) che deriva dal controllo Calendar ed un altro controllo web che deriva dal controlloA (che chiameremo controllo B).
E' possibile dal controlloA richiamare un evento da me creato nel controlloB?( tenendo conto che voglio compilare separatamente i controlli in modo da includere le dll nella cartella bin del progetto).

Ciao e grazie

Leo
Presumo che l'evento del controlloA sia public, quindi senza nessun problema puoi lanciare l'evento come nel controlloA anche nel controllo B e cioè:

mioevento(paramentri..

Comunque, la tecnica più usata (visto che non si può ridefinire) è di definire un metodo sovrascribile che lancia l'evento. Es

controlloA:
protected virtual void onMioEvento()
{
if (mioevento != null)
mioevento(paramentri)
}

In questo modo nel controllo B sovrascrivi il metodo e lo lanci quando vuoi facendo base.onMioEvento

Spero di essere stato un po' chiaro

Ciao

Il mio blog
Homepage
30 messaggi dal 06 settembre 2002
Ciao! Ma non ho capito il tuo esempio!
Tieni conto che l'evento è nel controllo B ( che deriva dal controllo A) e che voglio lanciarlo dal controllo A.


Allora non puoi. La classe A conosce solo se stessa o le classi dalla quale eredita.
Se ci pensi è ovvio che non possa fare una cosa del genere

Ciao

Il mio blog
Homepage
30 messaggi dal 06 settembre 2002
lo presupponevo, ma poichè devo trasportare da Centura ad ASP.NET... come al solito sono fregato
30 messaggi dal 06 settembre 2002
Cambiamo scenario supponiamo che
il ControlloB sia contenuto in un controlloA ( ad esempio un mio bottone personalizzato contenuto in una pagina aspx Webfom1 ).e voglio
1. attivare dal bottone un evento della pagina aspx
2. ottenere un bottone generico in forma dll da usare in diversi progetti

Io ho pensato ad una soluzione del genere.

nella pagina aspx definisco l'evento

public event Evento1(byval obj as object, byval e as eventargs)

protected sub onEvent1(byval e as eventargs)
raiseevent evento1(me, eventargs.empty)
end sub

e nel mio controllo

dim mycontrol as webform1

mycontrol = me.parent.namingcontainer
mycontrol.onevent1(e.empty)

Il problema è che ho dovuto definire mycontrol di tipo webform1
ma io a priori non so come si chiama la pagina ed inoltre a maggior ragione prima della compilazione.
Che cosa posso fare?

O usi un classe base che definisce l'evento e le tue pagine aspx ereditano da questa o fai un interfaccia che le classi devono implementare.
In questo modo dal tuo controllo non fai il cast specifico sulla webform ma sulla classe base o sull'interfaccia

Ciao

Il mio blog
Homepage
30 messaggi dal 06 settembre 2002
Quando parli di interfacce, le classi che la devono implementare sono le pagine aspx. giusto?

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.