Adding and populating a custom property for a user control

M

Mike Owen

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.
 
M

Manish Bafna

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
 
M

Mike Owen

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 said:
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 said:
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.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top