gegeven: twee usercontrols in die in een pagina zitten moeten communiceren.
oplossing: aan de hand van events geven ze een custom event arg door.
Deze klasse heb ik eerst gemaakt (FilterChangeEventArgs) met de properties die ik moet doorgeven.
Nu heb ik in mijn "caller" een raiseEvent FilterChange(Me, args) staan. args is hier van het type FilterchangeEventArgs
in de caller staat ook het volgende gedefinieerd
In de receiver staat hetvolgende
Nu moet je die event nog "binden" in de "hoofd" pagina
Maaaar..
ctype(ctlfilter,UCFilter).filterchange >> hier kent hij "filterchange" niet ondanks dat een publiek event is. heb al gerecompiled enzo hoor..
oplossing: aan de hand van events geven ze een custom event arg door.
Deze klasse heb ik eerst gemaakt (FilterChangeEventArgs) met de properties die ik moet doorgeven.
Nu heb ik in mijn "caller" een raiseEvent FilterChange(Me, args) staan. args is hier van het type FilterchangeEventArgs
in de caller staat ook het volgende gedefinieerd
Visual Basic .NET:
1
| Public Event FilterChange(ByVal sender As Object, ByVal e As FilterChangeEventArgs) |
In de receiver staat hetvolgende
Visual Basic .NET:
1
2
3
4
5
6
7
| public class UCFilter inherits MyUserControl .... Public Event FilterChange(ByVal sender As Object, ByVal e As FilterChangeEventArgs) Public Sub FilterChange(ByVal sender As Object, ByVal args As FilterChangeEventArgs) 'hier is de code dit ZOU moeten uitgevoerd worden |
Nu moet je die event nog "binden" in de "hoofd" pagina
Visual Basic .NET:
1
2
3
4
5
6
7
8
| ctlfilter = LoadControl(strFilter & ".ascx") ctlsearch = LoadControl("ucsearchresults.ascx") ctype(ctlfilter,UCFilter).filterchange += new FilterChangeEventArgs(ctype(ctlSearch,UCSearch).filterChange) filter.Controls.Add(ctlfilter) result.Controls.Add(ctlsearch) |
Maaaar..
ctype(ctlfilter,UCFilter).filterchange >> hier kent hij "filterchange" niet ondanks dat een publiek event is. heb al gerecompiled enzo hoor..
[ Voor 5% gewijzigd door Verwijderd op 19-10-2003 16:35 ]