Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Building Controls > Composite control not appearing in toolbar...

Reply
Thread Tools

Composite control not appearing in toolbar...

 
 
Griff
Guest
Posts: n/a
 
      10-09-2006
Hi - I'm just experimenting and following the example in:
http://msdn2.microsoft.com/en-us/library/ms379565.aspx

I have a solution that has my controls project and a "test" web project.

When I build the controls project, the control that inherits from
"WebControls" appears fine in the toolbox, but the one that inherits from
"CompositeControl" does not appear.

Code for this control is below (just in case I've deviated from the MSDN
example and not spotted it).

Thanks for your help.

Griff
------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebControlLibraryPrototypeA
{
[DefaultProperty("Prompt")]
[ToolboxData("<{0}:AgeCollector runat=server></{0}:AgeCollector>")]
public class AgeCollector : CompositeControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("Please enter your date of birth:")]
[Description("Text to prompt user with")]
[Localizable(true)]
public virtual string Prompt
{
get
{
String s = (String)ViewState["Prompt"];
return ((s == null) ? String.Empty : s);
}

set
{
ViewState["Prompt"] = value;
}
}

[Bindable(true)]
[Category("Appearance")]
[Description("Date of birth input area")]
public virtual DateTime DateOfBirth
{
get
{
object o = ViewState["DateOfBirth"];
return (o == null) ? DateTime.Now : (DateTime)o;
}
set
{
ViewState["DateOfBirth"] = value;
}
}

protected override void CreateChildControls()
{
Label lab1 = new Label();
lab1.Text = Prompt;
lab1.ForeColor = this.ForeColor;
this.Controls.Add(lab1);

Literal lit = new Literal();
lit.Text = "<br/>";
this.Controls.Add(lit);

TextBox tb = new TextBox();
tb.ID = "tb1";
tb.Text = DateOfBirth.ToString();
this.Controls.Add(tb);

base.CreateChildControls();
}
}
}




 
Reply With Quote
 
 
 
 
Griff
Guest
Posts: n/a
 
      10-09-2006
Bit more info...if I right click in the toolbox and chose "show all" then
this control appears, albeit greyed out. It's as if it compiled
successfully but can't be used.


 
Reply With Quote
 
 
 
 
Brennan Stehling
Guest
Posts: n/a
 
      10-09-2006
Be sure you have your namespace set properly in the AssemblyInfo.

[assembly: TagPrefix("CustomNamespace.Controls", "cnc")]

It should match up with your controls.

And sometimes Visual Studio needs a restart. There are lots of bugs in
VS which have been addressed by the SP1 Beta.

You can get that beta here...

http://connect.microsoft.com/visualstudio

Brennan Stehling
http://brennan.offwhite.net/blog/

Griff wrote:
> Hi - I'm just experimenting and following the example in:
> http://msdn2.microsoft.com/en-us/library/ms379565.aspx
>
> I have a solution that has my controls project and a "test" web project.
>
> When I build the controls project, the control that inherits from
> "WebControls" appears fine in the toolbox, but the one that inherits from
> "CompositeControl" does not appear.
>
> Code for this control is below (just in case I've deviated from the MSDN
> example and not spotted it).
>
> Thanks for your help.
>
> Griff
> ------------
>
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Text;
> using System.Web;
> using System.Web.UI;
> using System.Web.UI.WebControls;
>
> namespace WebControlLibraryPrototypeA
> {
> [DefaultProperty("Prompt")]
> [ToolboxData("<{0}:AgeCollector runat=server></{0}:AgeCollector>")]
> public class AgeCollector : CompositeControl
> {
> [Bindable(true)]
> [Category("Appearance")]
> [DefaultValue("Please enter your date of birth:")]
> [Description("Text to prompt user with")]
> [Localizable(true)]
> public virtual string Prompt
> {
> get
> {
> String s = (String)ViewState["Prompt"];
> return ((s == null) ? String.Empty : s);
> }
>
> set
> {
> ViewState["Prompt"] = value;
> }
> }
>
> [Bindable(true)]
> [Category("Appearance")]
> [Description("Date of birth input area")]
> public virtual DateTime DateOfBirth
> {
> get
> {
> object o = ViewState["DateOfBirth"];
> return (o == null) ? DateTime.Now : (DateTime)o;
> }
> set
> {
> ViewState["DateOfBirth"] = value;
> }
> }
>
> protected override void CreateChildControls()
> {
> Label lab1 = new Label();
> lab1.Text = Prompt;
> lab1.ForeColor = this.ForeColor;
> this.Controls.Add(lab1);
>
> Literal lit = new Literal();
> lit.Text = "<br/>";
> this.Controls.Add(lit);
>
> TextBox tb = new TextBox();
> tb.ID = "tb1";
> tb.Text = DateOfBirth.ToString();
> this.Controls.Add(tb);
>
> base.CreateChildControls();
> }
> }
> }


 
Reply With Quote
 
Griff
Guest
Posts: n/a
 
      10-10-2006
Hi Brennan

I'm not completely convinced that there is a problem with the namespaces -
the other controls that inherit from WebControl within the same control
library all appear. However, I did explicitly add it to the AssemblyInfo
(and "Using System.Web.UI" but to no avail.

I'll look into SP1 beta, though again I'm not that happy about using beta
software. If it is a problem with the IDE then this tells me one of two
things:
a) there are a lot of people writing composite controls that are
experiencing the same problem and PRESUMABLY have found a way around this
problem before SP1Beta was released, or
b) there aren't that many developers creating composite controls....

I'm still hoping that it's just a silly mistake on my part....

Griff


 
Reply With Quote
 
PeterKellner
Guest
Posts: n/a
 
      10-15-2006
On 9 Oct 2006 13:16:22 -0700, "Brennan Stehling" <(E-Mail Removed)>
wrote:

>Be sure you have your namespace set properly in the AssemblyInfo.
>
>[assembly: TagPrefix("CustomNamespace.Controls", "cnc")]
>
>It should match up with your controls.
>


Hi,

I just installed beta1 and still have the same problem. I've been
wrestling with this for a long time and I know I have the above
assembly correct. Any other ideas? It seems Microsoft knows how to
make there controls appear in the toolbar. What can I do to make mine
appear?
Peter Kellner
http://peterkellner.net
 
Reply With Quote
 
Brennan Stehling
Guest
Posts: n/a
 
      10-18-2006
You can always add the manually.

Brennan Stehling
http://brennan.offwhite.net/blog/

PeterKellner wrote:
> On 9 Oct 2006 13:16:22 -0700, "Brennan Stehling" <(E-Mail Removed)>
> wrote:
>
> >Be sure you have your namespace set properly in the AssemblyInfo.
> >
> >[assembly: TagPrefix("CustomNamespace.Controls", "cnc")]
> >
> >It should match up with your controls.
> >

>
> Hi,
>
> I just installed beta1 and still have the same problem. I've been
> wrestling with this for a long time and I know I have the above
> assembly correct. Any other ideas? It seems Microsoft knows how to
> make there controls appear in the toolbar. What can I do to make mine
> appear?
> Peter Kellner
> http://peterkellner.net


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Losing Composite Control property that another Composite Control ... Chad ASP .Net Building Controls 0 02-01-2005 09:01 PM
Possible to create a composite control that has a child control that is a validator that validates the composite control itself? Jonathan Eric Miller ASP .Net Building Controls 2 07-22-2004 10:58 PM
Composite control with dynamic composite controls sleigh ASP .Net 1 02-12-2004 06:24 PM
Using Table control in a custom composite control. Control does not render properly in design time. jb_in_marietta@yahoo.com ASP .Net Building Controls 1 07-02-2003 08:05 AM
Using Table control in a custom composite control. Control does not render properly in design time. jb_in_marietta@yahoo.com ASP .Net 0 07-01-2003 09:26 PM



Advertisments