Setting the order of LoadViewState

L

lisa

I have a server control. It has a Layout property, a Height property,
and a Width property. What happens in the Height and Width property
depends on the Layout.

Unfortunately, what seems to be happening is that when I run a page
that has my control in it, the Height and Width properties are
initialized from ViewState before the Layout property. As a result,
the Height and Width properties are assuming a Layout property of 0
(it's an enum property, and that's what you get when there's no value).

Is there a way that I can force my page to initialize the Layout
property first? I've tried moving it above them in the code, on the
chance that it's processing from the top down, but that didn't have any
effect.

Can anyone help?

Thanks,
Lisa
 
S

Steve Goodyear

Hi Lisa,

As a best practice you should re-consider the logic or timing when events
happen. During the LoadViewState phase you don't really want any logic to
occur because some properties might rely on others that load their ViewState
later. See if you can take the logic that relies on Layout and implement it
at the PreRender event instead.

Instead if you totally reject that idea, LoadViewState is dependent on the
order Controls are added to the Page control tree.

Cheers,
Steve Goodyear
Vancouver, Canada
 
H

Haacked

The ViewState doesn't guarantee the order that controls
are loaded and saved. Therefore, if the value of the
Layout property is dependent on the Height and Width, it
probably shouldn't be saved in the ViewState. You could
make it a property that is calculated when it is accessed.

If that is a problem for some reason, your best bet is to
have your server control override the LoadViewState()
method and load the values from the ViewState in the
correct order. That gives you total control.

Hope this helps.

Phil
http://haacked.com/
 

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,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top