Programmatically listening for an event?

G

George Leithead

Hi,

I have the following in an ASPX page, that is an event listener, that
works fine.

BasicSearch1.SearchActivated += new
myWebControlLibrary.BasicSearch.SearchEventHandler(SearchResults1.PerformSearch);

However, I would like to change the ASPX page to not assume the name of
the control, but instead listen to the event programmatically. I tried
the below, which does compile and resolve correctly, however, it does
not appear to be 'listening' to the event and does not get triggered!

foreach (Control ctrl in Page.Controls)
{
if (ctrl.GetType() ==
typeof(myWebControlLibrary.BasicSearch))
{
// This SHOULD have worked! But it doesnt appear to
indicate that it is listening!
((myWebControlLibrary.BasicSearch)ctrl).SearchActivated += new
WebControlLibrary.BasicSearch.SearchEventHandler(SearchResults1.PerformSearch);
}
}
 
A

Alessandro Zifiglio

hi George, you have to go deeper in the hierarchy. The control you are
looking for may not be a direct child of your pages control collection but a
child control of the form control in the page. If the control you are
looking for is further nested within another control, then its up to you to
dig further down the hierarchy and find it.
Currently the code is not executing because you are searching in the wrong
place where the control is not contained.

follow the tutorial here :
http://msdn2.microsoft.com/en-us/library/yt340bh4.aspx

Alessandro Zifiglio
http://www.AsyncUI.net
 
G

George Leithead

Alessandro,

That was it ...spot on. Thanks.

In the interest of information sharing, my code ended up as:

foreach (Control ctrl in Page.Controls)
{
foreach (Control chldControl in ctrl.Controls)
{
if (chldControl.GetType() ==
typeof(myWebControlLibrary.SearchResults))
((myWebControlLibrary.SearchResults)chldControl).PerformSearch(this,
new SearchActivatedEventArgs(queryExpression, coveoInstanceName,
coveoCollectionNames, useWildcards));
}
}


George
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top