Adding and populating a custom property for a user control

Discussion in 'ASP .Net Web Controls' started by Mike Owen, Jul 20, 2007.

  1. Mike Owen

    Mike Owen Guest

    I have built and used a custom control which works fine.

    I now want to add a property that I can set from the various pages where I
    use the control.

    I have added the following property in the code behind file:

    Public Property ContentTypeID() As Int16
    Get

    Return mContentTypeID

    End Get
    Set(ByVal value As Int16)

    mContentTypeID = value

    End Set
    End Property

    and set it in the page as follows:

    <%@ Register TagPrefix="uc1" TagName="_Content" Src="~/_Content.ascx" %>
    <uc1:_Content id=_Content ContentTypeID=10 runat="server"></uc1:_Content>

    However in design time the error 'Attribute ContentTypeID is not a valid
    attribute of element _Content' comes up for the property/attribute
    ContentTypeID, and of course the value of 10 is not passed through to the
    code behind file.

    Any ideas what I am doing wrong?


    Thanks, Mike.
     
    Mike Owen, Jul 20, 2007
    #1
    1. Advertising

  2. Mike Owen

    Manish Bafna Guest

    Hi,
    Following code is working perfectly well in my machine:
    [1]Code in WebUserControl.ascx.vb
    Partial Class WebUserControl
    Inherits System.Web.UI.UserControl
    Dim mContentTypeID As Int16

    Public Property ContentTypeID() As Int16
    Get
    Return mContentTypeID
    End Get
    Set(ByVal value As Int16)

    mContentTypeID = value
    End Set
    End Property
    End Class
    [2]The aspx page in which usercontrol is included(Default.vb)
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
    Inherits="_Default" %>
    <%@ Register Src="~/WebUserControl.ascx" TagName="_Content" TagPrefix="uc1" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Untitled Page</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <uc1:_Content id="_Content" ContentTypeID="10"
    runat="server"></uc1:_Content>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>

    </body>
    </html>
    [3]Code in Default.aspx.vb
    Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles Me.Load
    End Sub
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles Button1.Click
    Label1.Text = _Content.ContentTypeID
    End Sub
    End Class

    Compare with your code and figure out where you have missed out
    --
    Hope this answers your question.
    Thanks and Regards.
    Manish Bafna.
    MCP and MCTS.



    "Mike Owen" wrote:

    > I have built and used a custom control which works fine.
    >
    > I now want to add a property that I can set from the various pages where I
    > use the control.
    >
    > I have added the following property in the code behind file:
    >
    > Public Property ContentTypeID() As Int16
    > Get
    >
    > Return mContentTypeID
    >
    > End Get
    > Set(ByVal value As Int16)
    >
    > mContentTypeID = value
    >
    > End Set
    > End Property
    >
    > and set it in the page as follows:
    >
    > <%@ Register TagPrefix="uc1" TagName="_Content" Src="~/_Content.ascx" %>
    > <uc1:_Content id=_Content ContentTypeID=10 runat="server"></uc1:_Content>
    >
    > However in design time the error 'Attribute ContentTypeID is not a valid
    > attribute of element _Content' comes up for the property/attribute
    > ContentTypeID, and of course the value of 10 is not passed through to the
    > code behind file.
    >
    > Any ideas what I am doing wrong?
    >
    >
    > Thanks, Mike.
     
    Manish Bafna, Jul 21, 2007
    #2
    1. Advertising

  3. Mike Owen

    Mike Owen Guest

    Hi Manish,

    I was actually trying to do it in a more abstract way because I am using
    skins on the site, but having looked at it it was essential that I did it my
    way, the only benefit being it fitted in with the rest of the code on the
    site.

    I tried it your way and it worked fine.

    Thanks for your help.


    Cheers, Mike.

    "Manish Bafna" wrote:

    > Hi,
    > Following code is working perfectly well in my machine:
    > [1]Code in WebUserControl.ascx.vb
    > Partial Class WebUserControl
    > Inherits System.Web.UI.UserControl
    > Dim mContentTypeID As Int16
    >
    > Public Property ContentTypeID() As Int16
    > Get
    > Return mContentTypeID
    > End Get
    > Set(ByVal value As Int16)
    >
    > mContentTypeID = value
    > End Set
    > End Property
    > End Class
    > [2]The aspx page in which usercontrol is included(Default.vb)
    > <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
    > Inherits="_Default" %>
    > <%@ Register Src="~/WebUserControl.ascx" TagName="_Content" TagPrefix="uc1" %>
    > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    >
    > <html xmlns="http://www.w3.org/1999/xhtml" >
    > <head runat="server">
    > <title>Untitled Page</title>
    > </head>
    > <body>
    > <form id="form1" runat="server">
    > <div>
    > <uc1:_Content id="_Content" ContentTypeID="10"
    > runat="server"></uc1:_Content>
    > <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    > <asp:Button ID="Button1" runat="server" Text="Button" />
    > </div>
    > </form>
    >
    > </body>
    > </html>
    > [3]Code in Default.aspx.vb
    > Partial Class _Default
    > Inherits System.Web.UI.Page
    > Protected Sub Page_Load(ByVal sender As Object, ByVal e As
    > System.EventArgs) Handles Me.Load
    > End Sub
    > Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
    > System.EventArgs) Handles Button1.Click
    > Label1.Text = _Content.ContentTypeID
    > End Sub
    > End Class
    >
    > Compare with your code and figure out where you have missed out
    > --
    > Hope this answers your question.
    > Thanks and Regards.
    > Manish Bafna.
    > MCP and MCTS.
    >
    >
    >
    > "Mike Owen" wrote:
    >
    > > I have built and used a custom control which works fine.
    > >
    > > I now want to add a property that I can set from the various pages where I
    > > use the control.
    > >
    > > I have added the following property in the code behind file:
    > >
    > > Public Property ContentTypeID() As Int16
    > > Get
    > >
    > > Return mContentTypeID
    > >
    > > End Get
    > > Set(ByVal value As Int16)
    > >
    > > mContentTypeID = value
    > >
    > > End Set
    > > End Property
    > >
    > > and set it in the page as follows:
    > >
    > > <%@ Register TagPrefix="uc1" TagName="_Content" Src="~/_Content.ascx" %>
    > > <uc1:_Content id=_Content ContentTypeID=10 runat="server"></uc1:_Content>
    > >
    > > However in design time the error 'Attribute ContentTypeID is not a valid
    > > attribute of element _Content' comes up for the property/attribute
    > > ContentTypeID, and of course the value of 10 is not passed through to the
    > > code behind file.
    > >
    > > Any ideas what I am doing wrong?
    > >
    > >
    > > Thanks, Mike.
     
    Mike Owen, Jul 22, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ozan Kozan via .NET 247

    Help!!Adding Property(XmlDocument ) to your custom control !!

    Ozan Kozan via .NET 247, Aug 4, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    417
    Ozan Kozan via .NET 247
    Aug 4, 2004
  2. AleXmanFree
    Replies:
    3
    Views:
    596
    Hillbilly
    Oct 9, 2008
  3. Rob Joosen

    Keep custom property-value in custom rendered control

    Rob Joosen, May 12, 2004, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    157
    Rob Joosen
    May 12, 2004
  4. Travis Pruitt

    Dynamically Adding User Control with Child User Control

    Travis Pruitt, Jan 13, 2005, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    200
    Travis Pruitt
    Jan 13, 2005
  5. Mike Owen

    Adding and populating a custom property for a user control

    Mike Owen, Jul 20, 2007, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    176
    Mike Owen
    Jul 20, 2007
Loading...

Share This Page