Inexplicable (By Me) Null Reference Error

F

frankvfox

Swipe, copy and paste this into notepad for readability

First experience with a Web User Control. Control simply an ordered
(vertical/horizontal)
array of text boxes that will show authorized versus actual expenses for a
group of capital
projects. User control enables grid alignment within a panel centered in a
flow layout
host page. Source code shown below for control and host. I know there are
easier ways of
doing this but I wanted to learn this aspect of VB.net.

No squiggly lines presented in source editor. All references generated by
intellisense
dropdown during typing.

I'm getting a null reference error within the control itself (as shown
below). The variable
m_Text has the appropriate value during debug. I can't figure it out. I know
it's something
simple but this is my first time with a web user control and don't have a
clue. Any help will
be really appreciated.

Code snippets follow below.

Frank Fox
Hendersonville, Tennessee
5/7/2006


'Overview.ascx is the user control file

Public Class Overview1
Inherits System.Web.UI.UserControl

Private m_Index As Integer
Private m_Text As String

Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
'TextBox1 declared

'all the other control declarations removed for brevity here

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'no code
End Sub

Public WriteOnly Property Index()
Set(ByVal Value)
m_Index = Value
End Set
End Property

Public WriteOnly Property Text()
Set(ByVal Value)
m_Text = Value
Select Case m_Index
Case 1
TextBox1.Text = m_Text '<---- null reference error
announced here
Case 2
TextBox2.Text = m_Text
Case 3
TextBox3.Text = m_Text

'Case 4 through Case 37 removed for brevity here

Case 38
TextBox38.Text = m_Text
Case 39
TextBox39.Text = m_Text
Case 40
TextBox40.Text = m_Text
End Select
End Set
End Property

End Class

HTML behind:

<%@ Control Language="vb" AutoEventWireup="false"
Codebehind="Overview.ascx.vb" Inherits="CapitalProjects.Overview1"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<DIV style="WIDTH: 624px; POSITION: relative; HEIGHT: 424px"
ms_positioning="GridLayout">

<asp:TextBox id="TextBox1" style="Z-INDEX: 104; LEFT: 136px; POSITION:
absolute; TOP: 184px"
runat="server" Width="80px" Height="20px"></asp:TextBox>
<asp:TextBox id="TextBox2" style="Z-INDEX: 105; LEFT: 224px; POSITION:
absolute; TOP: 184px"
runat="server" Width="80px" Height="20px"></asp:TextBox>
<asp:TextBox id="TextBox3" style="Z-INDEX: 106; LEFT: 312px; POSITION:
absolute; TOP: 184px"
runat="server" Width="80px" Height="20px"></asp:TextBox>

'TextBox4 through TextBox37 removed for brevity here


<asp:TextBox id="TextBox38" style="Z-INDEX: 141; LEFT: 312px; POSITION:
absolute; TOP: 360px"
runat="server" Width="80px" Height="20px"></asp:TextBox>
<asp:TextBox id="TextBox39" style="Z-INDEX: 140; LEFT: 400px; POSITION:
absolute; TOP: 360px"
runat="server" Width="80px" Height="20px"></asp:TextBox>
<asp:TextBox id="TextBox40" style="Z-INDEX: 139; LEFT: 488px; POSITION:
absolute; TOP: 360px"
runat="server" Width="80px" Height="20px"></asp:TextBox>


__________________________________________________________________________________________________________________________________


AllProjectsOverview.aspx.vb 'host page

Imports System.Data.SqlClient

Public Class AllProjectsOverview
Inherits System.Web.UI.Page

Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim sdr As SqlDataReader
Protected WithEvents ov As Overview1

'designer generated region removed for brevity here

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim i, j, k As Integer
Dim par1 As SqlParameter
Dim par2 As SqlParameter
cn = Session("Connection")
If (cn.State.ToString = "Closed") Then cn.Open()
For i = 1 To 7 'first
seven rows .. eighth row is totals
cmd = New SqlCommand("SelectAllProjectsRow", cn)
cmd.CommandType = CommandType.StoredProcedure
par1 = New SqlParameter("@StatusID", SqlDbType.Int)
par2 = New SqlParameter("@CurrentYear", SqlDbType.Int)
par1.Value = i
par2.Value = Session("CurrentYear")
cmd.Parameters.Add(par1)
cmd.Parameters.Add(par2)
sdr = cmd.ExecuteReader
ov = New Overview1 '<-------- user control instance
If (sdr.HasRows) Then
sdr.Read()
j = i + (5 * (i - 1))
ov.Index = j '<-------- first call to user
control .. no error
ov.Text = sdr("auth") '<-------- second call .. error
generated in user control
j += 1
ov.Index = j
ov.Text = sdr("prior")
j += 1
ov.Index = j
ov.Text = sdr("thisyr")
j += 1
ov.Index = j
ov.Text = sdr("subtot")
j += 1
ov.Index = j
ov.Text = sdr("remainder")
End If
sdr.Close()
cmd.Dispose()
Next
End Sub

End Class

HTML behind:

<%@ Page Language="vb" AutoEventWireup="false"
Codebehind="AllProjectsOverview.aspx.vb"
Inherits="CapitalProjects.AllProjectsOverview"%>
<%@ Register TagPrefix="uc1" TagName="Overview" Src="Overview.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>AllProjectsOverview</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5"
name="vs_targetSchema">
</HEAD>
<body>
<center>
<form id="Form1" method="post" runat="server">
<P>
<uc1:Overview id="Overview1" runat="server"></uc1:Overview></P>
<P>
<asp:button id="btnPrint" runat="server" Text="Print" BackColor="Aqua"
Width="150px" Font-Bold="True"
ForeColor="Blue"></asp:button>
<asp:label id="Label17" runat="server" Width="50px"
ForeColor="White">x</asp:label>
<asp:button id="btnCancel" runat="server" Text="Go Back"
BackColor="Aqua" Width="130px" Font-Bold="True"
ForeColor="Blue"></asp:button></P>
</form>
</center>
</body>
</HTML>
 

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

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top