[WARNING : A/V UNSCANNABLE] RE: [Mono-dev] System.Web.UI.Pagepatch
Andrew Skiba
andrews at mainsoft.com
Sun Apr 30 02:16:50 EDT 2006
Hello, Chris.
So can I commit these patches yet?
Thank you.
Andrew.
> -----Original Message-----
> From: Chris Toshok [mailto:toshok at ximian.com]
> Sent: Tuesday, April 25, 2006 20:51
> To: Andrew Skiba
> Cc: mono-devel-list at lists.ximian.com
> Subject: Re: [WARNING : A/V UNSCANNABLE] RE: [Mono-dev]
> System.Web.UI.Pagepatch
>
> On Tue, 2006-04-25 at 02:16 -0700, Andrew Skiba wrote:
> > > I'd like to see the test used for this as well.
> >
> > Did you see the standalone test that I sent yesterday? For
> > convenience, I attach it to this message, too. It covers
> the following patches:
> >
> > ApplyTheme.patch
> > Page.Web.Config.patch
> > PageTheme.patch
> >
> > > At first blush the theme change looks ok, but I really don't like
> > > the idea of adding the ApplyTheme behavior to OnInit.
> > > Unless, of course, this is what actually happens in MS's
> > > implementation.
> >
> > It's not OnInit, it's in CreateChildControls flow. To
> figure that out
> > in MS implementation I made this:
>
> ah, sorry - I wasn't looking at the line numbers, I just
> searched for the surrounding patch context.
>
> > public class MyLogin:Login
> > {
> > protected override void OnInit (EventArgs e)
> > {
> > Trace.WriteLine ("before Login.OnInit");
> > base.OnInit (e);
> > Trace.WriteLine ("after Login.OnInit");
> > }
> > protected override void AddedControl
> (System.Web.UI.Control control,
> > int index)
> > {
> > Trace.WriteLine ("before Login.AddedControl");
> > base.AddedControl (control, index);
> > Trace.WriteLine ("after Login.AddedControl");
> > }
> >
> > protected override void CreateChildControls()
> > {
> > Trace.WriteLine ("before
> > Login.CreateChildControls");
> > base.CreateChildControls ();
> > Trace.WriteLine ("after
> > Login.CreateChildControls");
> > }
> > }
> >
> > public class MyImageButton:ImageButton
> > {
> > protected override void OnInit (EventArgs e)
> > {
> > Trace.WriteLine ("ImageButton.OnInit");
> > base.OnInit (e);
> > }
> > public override void ApplyStyleSheetSkin
> (System.Web.UI.Page page)
> > {
> > Trace.WriteLine
> > ("ImageButton.ApplyStyleSheetSkin");
> > base.ApplyStyleSheetSkin (page);
> > }
> >
> > public override string ImageUrl
> > {
> > get
> > {
> > return base.ImageUrl;
> > }
> > set
> > {
> > Trace.WriteLine ("Set
> > ImageButton.ImageURL");
> > base.ImageUrl = value;
> > }
> > }
> > }
> >
> > and changed in aspx <asp:login> and <asp:imagebutton> to
> <my:MyLogin>
> > and <my:MyImageButton>
> >
> > the output looked like:
> >
> > before Login.OnInit
> > after Login.OnInit
> > before Login.CreateChildControls
> > ImageButton.ApplyStyleSheetSkin
> > Set ImageButton.ImageURL
> > before Login.AddedControl
> > ImageButton.OnInit
> > after Login.AddedControl
> > after Login.CreateChildControls
> >
> > >
> > > Also, the master page change doesn't seem necessary to me, in the
> > > scope of the greater change. The controls will have their OnInit
> > > methods's called properly when they're added to the
> already Init'ed
> > > controls.
> >
> > If you do ApplyMasterPage after InitRecursive, then
> elements defined
> > on master page do not get their themes. Just try the
> standalone test I
> > sent, the difference is clear.
>
> My comment was made under the assumption that the ApplyTheme
> call was in OnInit (as above.)
>
> I'll take a look at this further tonight probably.
>
> Chris
>
More information about the Mono-devel-list
mailing list