prerender event

  • Thread starter Yankee Imperialist Dog
  • Start date
Y

Yankee Imperialist Dog

i'm not sure how the preRender event gets handled.

if i have a function:
protected void tbPasswordPreRender(object sender, EventArgs e)
{
tbPswd1.Attributes["value"] = tbPswd1.Text;
tbPswd2.Attributes["value"] = tbPswd2.Text;
}
and set the two text boxes Prerender event to this single function will it
fire twice?
I'm hoping that dot.net is smart enough to do it oncelike the way sqlserver
handles some sub queries.
 
T

Teemu Keiski

Hi,

if it is wired to two controls, it will run twice, no question about that -
this has nothing to do with SQL Server's subqueries :). Controls do not
know about each other unless it is explicitly somehow stated by the page
developer. Controls cannot assume much about logic - like the logic run on
their Prerender event , as the assumption could be wrong, too.

Instead of hardcoding the controls in the event handler, you could rely on
event being raised for specific control and deal with only it.

You could for example run it like this:

//Wiring events somewhere
tbPswd1.PreRender += new EventHandler(tbPasswordPreRender);
tbPswd2.PreRender += new EventHandler(tbPasswordPreRender);


protected void tbPasswordPreRender(object sender, EventArgs e)
{
//Use the knowledge that control raising the event is available via
sender argument
TextBox tb=(TextBox)sender;
tb.Attributes["value"] = tb.Text;
}

When it works equally for all TextBoxes you assign this handler to.
 
Y

Yankee Imperialist Dog

thank you for replying,
where in the page cycle should i drop this so that it will call once?

--
Share The Knowledge. I need all the help I can get and so do you!


Teemu Keiski said:
Hi,

if it is wired to two controls, it will run twice, no question about that -
this has nothing to do with SQL Server's subqueries :). Controls do not
know about each other unless it is explicitly somehow stated by the page
developer. Controls cannot assume much about logic - like the logic run on
their Prerender event , as the assumption could be wrong, too.

Instead of hardcoding the controls in the event handler, you could rely on
event being raised for specific control and deal with only it.

You could for example run it like this:

//Wiring events somewhere
tbPswd1.PreRender += new EventHandler(tbPasswordPreRender);
tbPswd2.PreRender += new EventHandler(tbPasswordPreRender);


protected void tbPasswordPreRender(object sender, EventArgs e)
{
//Use the knowledge that control raising the event is available via
sender argument
TextBox tb=(TextBox)sender;
tb.Attributes["value"] = tb.Text;
}

When it works equally for all TextBoxes you assign this handler to.

--
Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net


Yankee Imperialist Dog said:
i'm not sure how the preRender event gets handled.

if i have a function:
protected void tbPasswordPreRender(object sender, EventArgs e)
{
tbPswd1.Attributes["value"] = tbPswd1.Text;
tbPswd2.Attributes["value"] = tbPswd2.Text;
}
and set the two text boxes Prerender event to this single function will it
fire twice?
I'm hoping that dot.net is smart enough to do it oncelike the way
sqlserver
handles some sub queries.
 

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

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top