Re: Code Behind vs. no code behind: error

Discussion in 'ASP .Net' started by Ben Miller [msft], Jun 27, 2003.

  1. 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" <> wrote in message
    news:...
    > 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:
    > For email replace NOSPAM with agiam
    >
    >
    >
     
    Ben Miller [msft], Jun 27, 2003
    #1
    1. Advertising

  2. 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:
    For email replace NOSPAM with agiam


    "Ben Miller [msft]" <> wrote in message
    news:...
    > 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" <> wrote in message
    > news:...
    > > 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:
    > > For email replace NOSPAM with agiam
    > >
    > >
    > >

    >
    >
     
    Alphonse Giambrone, Jun 28, 2003
    #2
    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. =?Utf-8?B?Q2FybG8gTWFyY2hlc29uaQ==?=

    Fire Code behind code AND Javascript code associated to a Button Click Event

    =?Utf-8?B?Q2FybG8gTWFyY2hlc29uaQ==?=, Feb 10, 2004, in forum: ASP .Net
    Replies:
    4
    Views:
    21,300
    =?Utf-8?B?Q2FybG8gTWFyY2hlc29uaQ==?=
    Feb 11, 2004
  2. Daniel Manes

    Code-Behind Pain in the Behind!

    Daniel Manes, Jun 10, 2005, in forum: ASP .Net
    Replies:
    11
    Views:
    686
  3. Robert Dodier
    Replies:
    6
    Views:
    2,386
    Matthias Kraft
    Sep 14, 2004
  4. John

    Non-code behind to code behind

    John, Feb 19, 2007, in forum: ASP .Net
    Replies:
    2
    Views:
    509
    =?Utf-8?B?UGV0ZXIgQnJvbWJlcmcgW0MjIE1WUF0=?=
    Feb 19, 2007
  5. Kumarforg

    Web Service invocation from behind proxy behind firewall

    Kumarforg, Aug 3, 2004, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    198
    Kumarforg
    Aug 3, 2004
Loading...

Share This Page