I have several pages that use the same collection of controls, an Img, and a couple of labels. I figured I could write a Usercontrol that would wrap everything up. I also wanted to programmatically read properties of this control to tell me whether the
image was horizontal (width>height) or vertical (square counts as vertical).
So I lay my controls into the ASCX file, and then go into the codebehind create some public (readonly properties). No compile errors.
In my ascx file at the top I put this:
<%@ Control Inherits="uCtrlPreview" src="uCtrlPreview.vb" %>
I go into my first page (page1.aspx), give it a register tag, go down, put in my usercontrol tag. So far so good.
<%@ Register TagPrefix="UserControl" TagName="PrevImg" Src="previewImg.ascx"
%>
...
<body>
...
USERCONTROL:PrevImg id="Preview1" runat="Server"></USERCONTROL:PrevImg>
I go into my page's (page1.aspx) codebehind and put this line:
Protected WithEvents Preview1 As uCtrlPreview
I get this message:
The base class includes the field 'Preview1', but its type
(ICUser.uCtrlPreview) is not compatible with the type of control
(ASP.previewImg_ascx).
Any ideas?
-
-
I had the same problem today, but it is in C#.
all you need to do is declare the control with it's name instead of declaring it as a user control. For instance, in my case:
public class sniff : System.Web.UI.UserControl {
code here
}
is then instantiated on my page thus:
protected sniff ctrl_Sniff;
I had tried to do it this way unsuccessfully:
protected System.Web.UI.UserControl ctrl_Sniff;
HTH,
~ Knute -
Nah, that's how I was instantiating it, as a new sniff.
Now, in the ASP.net book i have they say to put a ClassName="" attribute in the ascx tag, like such:
<%@ Control Inherits="uCtrlPreview" src="uCtrlPreview.vb" ClassName="SomeOtherName" %>
saying that it is needed in case we dynamically create the control on a page.
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.