What's the trick here?
I have a placeholder in a master page and when the page loads, I want the master page to add either a login control or a session display in that placeholder. The code in the master page seems fine, however trying to add an user control ends up throwing me NullReferenceExceptions
since apparently the user control wasn't initialized. Built-in controls and referring the control in the markup works fine.
What am I doing wrong here?
-
-
Controls usually don't need to be initialized. If you look at all the controls in .NET they have a constructor without arguments. They work in that status already. If you set properties they change to fit those changes.
You could have both controls on the form and just setting the Visible property to false depending on the state.
-
The problem is that the constructor doesn't do anything to initialize the control.
However I found out just two minutes ago that I need to instance them using LoadControl, and now it works fine
-
OK. Great to know. I'm always going with CustomControls instead of UserControls. I like the custom controls more.
-
What's the difference between custom controls and user controls? The project templates only show user controls.
-
Wait till you wanna load that control into that type and casting it, you'll have problems, for some damn reason VS2005 can't recongise the the user controls as types in intellisense, so it underlines it, but it still compiles weirdness!!
This is what i'm talking about
SomeControl ctl = (SomeControl) LoadControl("SomeControl.ascx");
It can't detect SomeControl! It worked fine in VS.NET 2003
-
Hi,
The following are the differences between the User control and custom server control
User control
1.Compiled at runtime
2.HTML design (Visual design possible)
3.ASP.Net page model with code behind
4.Needs ASP.NET .aspx page to exist (can be used)
5.No design time interface
(Only a box representing the user control is available on an .aspx page)
6.Cannot be added to the ToolBox
Custom Server Control
1.Precompiled
2.No visual design. HTML needs to be declared programmatically
3.Component model
4.can be used in .aspx pages, user controls or other custom server controls.
5.Has design-time and run-time interface
6. Can be added to the ToolBox (using drag and drop)
Come to your question. As you see from above, user control is not precompiled, so, you can not add to the toolbox.
A user control is compiled at run time. When the compiler finds the register directive in an .aspx page that points to a user control, it compiles the control before it inserts its content into the .aspx page.
User controls are best when we create reusable user interface components for one specific application. Custom server controls are best for small and distinctive user interface options that can be used across many applications.
Regards
bhar
http://www.vkinfotek.com
-
One reason behind this is that you may be initializing any variable placed in user control by calling it from master page.
Use property to initialize a varible.
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.