Tech Off Thread

3 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

ASP.Net User control with codebehind not working

Back to Forum: Tech Off
  • User profile image
    qwert231

    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?

  • User profile image
    Knute

    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

  • User profile image
    qwert231

    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.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.