[WARNING : A/V UNSCANNABLE] RE: [Mono-dev] System.Web.UI.Pagepatch

Chris Toshok toshok at ximian.com
Mon May 1 13:45:20 EDT 2006


I have yet to successfully test your patch.  Hacking it together on
windows gets me this (this is without using your custom controls.  just
the vanilla Default/master page):

[HttpException (0x80004005): Login1: LayoutTemplate does not contain an
IEditableTextControl with ID UserName for the username.]
   System.Web.UI.WebControls.GenericContainer`1.FindControl(String id, Boolean required, String errorResourceKey) +1716147
   System.Web.UI.WebControls.Login.get_UserNameInternal() +91
   System.Web.UI.WebControls.Login.SetEditableChildProperties() +26
   System.Web.UI.WebControls.Login.CreateChildControls() +179
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.PreRenderRecursiveInternal() +41
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Control.PreRenderRecursiveInternal() +161
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

Chris

On Sat, 2006-04-29 at 23:16 -0700, Andrew Skiba wrote:
>  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
> > 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Mono-devel-list mailing list