Posted By: Tom Servo | May 21st, 2006 @ 6:52 AM
page 1 of 1
Comments: 7 | Views: 10121
Tom Servo
Tom Servo
W-hat?
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?
littleguru
littleguru
<3 Seattle

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.

littleguru
littleguru
<3 Seattle

OK. Great to know. I'm always going with CustomControls instead of UserControls. I like the custom controls more.

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.
page 1 of 1
Comments: 7 | Views: 10121
Microsoft Communities