Code Behind vs. no code behind: error

Ask a Question related to ASP.NET General, Design and Development.

  1. #1

    Default Re: Code Behind vs. no code behind: error

    I believe that you will need to Inherit the StoreComponents.ProductTemplate
    into the class for the codebehind for the usercontrol.

    So in the definition of the class:
    in C#

    public abstract class UsersUserControl : StoreComponents.ProductTemplate
    {

    stuff....

    }

    That way the UserControl has access to the ProductName property of the class
    because it inherited it, not imported it. I would have done it with the
    Inherits StoreComponents.ProductTemplate but I was not sure how a
    UserControl code-behind looked in VB as I do all my work in C#.

    HTH.

    Ben Miller

    --
    This posting is provided "AS IS" with no warranties, and confers no rights.


    "Alphonse Giambrone" <NOSPAMagiam@customdatasolutions.us> wrote in message
    news:uUiqbBcODHA.1584@TK2MSFTNGP11.phx.gbl...
    > I am in the final chapter of the book ASP.NET Unleashed which is building
    an
    > online store. All examples in the book were written without using
    > code-behind, but I am using Visual Studio.Net.
    > Throughout the book I have been able to get everything to work using
    > code-behind with relatively minor modifications.
    > I have run into a problem with this project dynamically loading a user
    > control.
    >
    > The code in the book for the user control is as follows:
    >
    > <%@ Inherits="StoreComponents.ProductTemplate" %>
    >
    > <font size="8" color="DarkRed"><%= ProductName %></font>
    > <p>
    > <font size="5"><%= UnitPrice.ToString( "c" ) %></font>
    >
    > Since I am using VS.NET, I created a new user control and added the
    > following in html:
    > <font size="8" color="DarkRed"><%= ProductName %></font>
    > <p>
    > <font size="5"><%= UnitPrice.ToString( "c" ) %></font>
    >
    > In the code-behind I added:
    > Imports StoreComponents.ProductTemplate
    >
    > The error I get is: Name 'ProductName' is not declared
    >
    > If I create the file in notepad without code-behind (as in the first
    > listing),
    > it works fine.
    >
    > There is a product template class which is compiled in StoreComponents.dll
    > as follows:
    >
    > Public Class ProductTemplate
    > Inherits UserControl
    > Public ReadOnly Property ProductID() As Integer
    > Get
    > Return Context.Items("ProductID")
    > End Get
    > End Property
    >
    > Public ReadOnly Property ProductName() As String
    > Get
    > Return Context.Items("ProductName")
    > End Get
    > End Property
    >
    > Public ReadOnly Property UnitPrice() As Decimal
    > Get
    > Return Context.Items("UnitPrice")
    > End Get
    > End Property
    >
    > Public ReadOnly Property Product() As DataRowView
    > Get
    > Return Context.Items("ProductInfo")
    > End Get
    > End Property
    > End Class
    >
    > I can leave that file without code-behind, but would really like to
    > understand what needs to be done to use the code-behind.
    > Any help would be appreciated.
    >
    > --
    >
    > Alphonse Giambrone
    > Email: [email]NOSPAM@customdatasolutions.us[/email]
    > For email replace NOSPAM with agiam
    >
    >
    >

    Ben Miller [msft] Guest

  2. Similar Questions and Discussions

    1. Why doesn't the Code Completion occur in FlexBuilder IDEwhen source code is in an external file?
      I am seperating my .as from the MXML by using the following in my file.mxml: <mx:Script source="file.as"> When I edit file.as, the code...
    2. How would I include the Open Browser code into this lineof code?
      Hello and thankyou in advance: I have an ASP page linked to my database and I want to apply the Open Browser behaviour to the code. I have tried...
    3. Custom control fires event but ignores some code in the code behind file
      I do not quite understand the question. I will merely point out that most programming problems happen for a reason. Code works the way it is...
    4. Custom tool warning: DiscoCodeGenerator unable to initialize code generator. No code generated.
      I created a brand new WebService (HelloWorld) and when I attempt to add this WebService to a WindowsForm project I get the following error message in...
    5. Security problem with Managed Code calling Unmanaged Code in a Web Page
      Hello, I have a web page which contains an ActiveX control (unmanaged) and a Windows Forms User Control (managed). Both reside on a web page and...
  3. #2

    Default Re: Code Behind vs. no code behind: error

    Thanks for the reply, Ben. You are correct.
    The vb code-behind for a user control normally has the line
    Inherits System.Web.UI.UserControl

    I changed to

    Inherits StoreComponents.ProductTemplate

    The project builds and runs. The only problem is that I get an error when
    opening the ascx file in the VS IDE:
    The file failed to load in the Web From Designer. Please correct the
    following error, then load it again: Property accessor " Product' on object
    'Default' threw the following exception: 'Object reference not set to an
    instance of an object.'

    Thanks again for your help!

    --

    Alphonse Giambrone
    Email: [email]NOSPAM@customdatasolutions.us[/email]
    For email replace NOSPAM with agiam


    "Ben Miller [msft]" <benmi@online.microsoft.com> wrote in message
    news:uJ6DgrMPDHA.1720@TK2MSFTNGP11.phx.gbl...
    > I believe that you will need to Inherit the
    StoreComponents.ProductTemplate
    > into the class for the codebehind for the usercontrol.
    >
    > So in the definition of the class:
    > in C#
    >
    > public abstract class UsersUserControl : StoreComponents.ProductTemplate
    > {
    >
    > stuff....
    >
    > }
    >
    > That way the UserControl has access to the ProductName property of the
    class
    > because it inherited it, not imported it. I would have done it with the
    > Inherits StoreComponents.ProductTemplate but I was not sure how a
    > UserControl code-behind looked in VB as I do all my work in C#.
    >
    > HTH.
    >
    > Ben Miller
    >
    > --
    > This posting is provided "AS IS" with no warranties, and confers no
    rights.
    >
    >
    > "Alphonse Giambrone" <NOSPAMagiam@customdatasolutions.us> wrote in message
    > news:uUiqbBcODHA.1584@TK2MSFTNGP11.phx.gbl...
    > > I am in the final chapter of the book ASP.NET Unleashed which is
    building
    > an
    > > online store. All examples in the book were written without using
    > > code-behind, but I am using Visual Studio.Net.
    > > Throughout the book I have been able to get everything to work using
    > > code-behind with relatively minor modifications.
    > > I have run into a problem with this project dynamically loading a user
    > > control.
    > >
    > > The code in the book for the user control is as follows:
    > >
    > > <%@ Inherits="StoreComponents.ProductTemplate" %>
    > >
    > > <font size="8" color="DarkRed"><%= ProductName %></font>
    > > <p>
    > > <font size="5"><%= UnitPrice.ToString( "c" ) %></font>
    > >
    > > Since I am using VS.NET, I created a new user control and added the
    > > following in html:
    > > <font size="8" color="DarkRed"><%= ProductName %></font>
    > > <p>
    > > <font size="5"><%= UnitPrice.ToString( "c" ) %></font>
    > >
    > > In the code-behind I added:
    > > Imports StoreComponents.ProductTemplate
    > >
    > > The error I get is: Name 'ProductName' is not declared
    > >
    > > If I create the file in notepad without code-behind (as in the first
    > > listing),
    > > it works fine.
    > >
    > > There is a product template class which is compiled in
    StoreComponents.dll
    > > as follows:
    > >
    > > Public Class ProductTemplate
    > > Inherits UserControl
    > > Public ReadOnly Property ProductID() As Integer
    > > Get
    > > Return Context.Items("ProductID")
    > > End Get
    > > End Property
    > >
    > > Public ReadOnly Property ProductName() As String
    > > Get
    > > Return Context.Items("ProductName")
    > > End Get
    > > End Property
    > >
    > > Public ReadOnly Property UnitPrice() As Decimal
    > > Get
    > > Return Context.Items("UnitPrice")
    > > End Get
    > > End Property
    > >
    > > Public ReadOnly Property Product() As DataRowView
    > > Get
    > > Return Context.Items("ProductInfo")
    > > End Get
    > > End Property
    > > End Class
    > >
    > > I can leave that file without code-behind, but would really like to
    > > understand what needs to be done to use the code-behind.
    > > Any help would be appreciated.
    > >
    > > --
    > >
    > > Alphonse Giambrone
    > > Email: [email]NOSPAM@customdatasolutions.us[/email]
    > > For email replace NOSPAM with agiam
    > >
    > >
    > >
    >
    >

    Alphonse Giambrone Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139