getting web page - control and class to talk to one another is hard...

S

Support

Hello:

I have a aspx web page - let's call it main.aspx
It contains a placeholder: Myplaceholder.

I have a web control, lets call it webcontrol which has a code behind class
called webcontrolclass and a label called mycontrollabel
In the webcontrolclass, I have a private sub called:
Sub writetomycontrollabel(stuff as text)
mycontrollabel.text=stuff
End Sub

The code behind main.aspx
Dim MANAGEGENERAL As Control = LoadControl("webcontrol.ascx") ' needed for
the placeholder
Public MyMANAGEGENERAL As New webcontrolclass


I have a sub which is called by a button located on main.aspx
Sub mainaspx_click(usualstuff ) handles mainaspx.Click
MyPlaceholder.Controls.Add(MANAGEGENERAL)
MyMANAGEGENERAL.writetomycontrollabel("hello")
End sub

I get the error message:
Object reference not set to an instance of an object.
Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.
MyMANAGEGENERAL.writetomycontrollabel("hello")

So, I am missing something obvious - but I dont get it.
Help
Thanks
Terry
 
A

ashish

I think you need to load the control using
LoadControl method and then add it to the controls collection. The
problem is that the label control inside your custom control is not
loaded yet..


hth
-ashish


ote:
 
S

Scott Allen

Where does

MANAGEGENERAL As Control = LoadControl("webcontrol.ascx")

exist? In Page_Load? Is it executed with every postback and before the
Click event?
 
S

Support

exist before and page Loads ...

Public Class A
Inherits System.Web.UI.Page
Dim MANAGEGENERAL As Control = LoadControl("ManageGeneral.ascx")


Private Sub PAge_Init() Handles MyBAse.Init
End Sub


Private Sub PAge_Load() Handles MyBase.Load
MyPlaceholder.Controls.Add(MANAGEGENERAL)
End Sub

Terry
 
S

Scott Allen

You might want to turn on two options under Project -> Properties ->
Build: Option Strict and Option Explicit. That might help track down
the source of the error, looking at the code it doesn't seem these
options are on.
 

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

Top