public variables in asp.net?

W

Web Search Store

I am trying to make variables available in my web application by making
user controls

I classic asp I was able to put them all in an #include which made them
available throughout the asp script

So here's my example, 2 .ascx files, and I want to use a variable, like a
public variable, in the 2nd one (in the page load event)

Even though I make a public property in the first topdcl_try.ascx file, it
doesn't recognize it in the page load event.

Here is the page:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>

<%@ Register TagPrefix="Utils" TagName="topdcl" Src="utils/topdcl_try.ascx"
%>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>


<form id="form1" runat="server">

<div>


</div>

</form>



<Utils:topdcl id="My_topdcl" runat="server"/>




</body>

</html>

---------------------------------------------

Here is the topdcl_try.ascx file:
------------------------------------------

<%@ Control ClassName="topdcl" %>

<script language="vb" runat="server">


Private m_addressesstring as String= "adr,phone,zip,"

Public Property addressesstring as String

Get

Return m_addressesstring

End Get

Set

m_addressesstring = Value

End Set

End Property


Public Sub topdcl1()


addressesstring= "adr,phone,zip,"


End Sub

</script>

..--------------------------------------
Here is the page load event:

---------------------------------------



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load

My_topdcl.topdcl1()

Response.Write(addressesstring)

'My_w.w1()

End Sub



I get an error saying the addressstring variable is not declared. I was
hoping making a public property would make it available within the page, but
it doesn't.I guess I don't understand how these properties work.



As I said, in classic .asp I could put all the 'dim' statements at the top
in an include, and the whole asp page could access them.



Thanks for any help!



Scott Baxter
 
N

Norm

 I am trying to make variables available in my web application by making
user controls

I classic asp I was able to put them all in an #include which made them
available throughout the asp script

So here's my example, 2 .ascx files, and I want to use a variable, like a
public variable, in the 2nd one (in the page load event)

Even though I make a public property in the first topdcl_try.ascx file,  it
doesn't recognize it in the page load event.

Here is the page:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>

<%@ Register TagPrefix="Utils" TagName="topdcl" Src="utils/topdcl_try.ascx"
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

</div>

</form>

<Utils:topdcl id="My_topdcl" runat="server"/>

</body>

</html>

---------------------------------------------

Here is the topdcl_try.ascx file:
------------------------------------------

<%@ Control ClassName="topdcl" %>

<script language="vb" runat="server">

Private m_addressesstring as String= "adr,phone,zip,"

Public Property addressesstring as String

Get

Return m_addressesstring

End Get

Set

m_addressesstring = Value

End Set

End Property

Public Sub topdcl1()

addressesstring= "adr,phone,zip,"

End Sub

</script>

.--------------------------------------
Here is the page load event:

---------------------------------------

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load

 My_topdcl.topdcl1()

Response.Write(addressesstring)

'My_w.w1()

End Sub

I get an error saying the addressstring variable is not declared. I was
hoping making a public property would make it available within the page, but
it doesn't.I guess I don't understand how these properties work.

As I said, in classic .asp I could put all the 'dim' statements at the top
in an include, and the whole asp page could access them.

Thanks for any help!

Scott Baxter

You need to reference the user control when accessing its public
property:

Change "Response.Write(addressesstring)" to
"Response.Write(My_topdcl.addressesstring)"

The error was telling you exactly what was happening. There was no
"addressstring" variable/property in scope.

Happy coding!
 
W

Web Search Store

Thanks a lot!

Scott
I am trying to make variables available in my web application by making
user controls

I classic asp I was able to put them all in an #include which made them
available throughout the asp script

So here's my example, 2 .ascx files, and I want to use a variable, like a
public variable, in the 2nd one (in the page load event)

Even though I make a public property in the first topdcl_try.ascx file, it
doesn't recognize it in the page load event.

Here is the page:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>

<%@ Register TagPrefix="Utils" TagName="topdcl"
Src="utils/topdcl_try.ascx"
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

</div>

</form>

<Utils:topdcl id="My_topdcl" runat="server"/>

</body>

</html>

---------------------------------------------

Here is the topdcl_try.ascx file:
------------------------------------------

<%@ Control ClassName="topdcl" %>

<script language="vb" runat="server">

Private m_addressesstring as String= "adr,phone,zip,"

Public Property addressesstring as String

Get

Return m_addressesstring

End Get

Set

m_addressesstring = Value

End Set

End Property

Public Sub topdcl1()

addressesstring= "adr,phone,zip,"

End Sub

</script>

.--------------------------------------
Here is the page load event:

---------------------------------------

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
Handles Me.Load

My_topdcl.topdcl1()

Response.Write(addressesstring)

'My_w.w1()

End Sub

I get an error saying the addressstring variable is not declared. I was
hoping making a public property would make it available within the page,
but
it doesn't.I guess I don't understand how these properties work.

As I said, in classic .asp I could put all the 'dim' statements at the top
in an include, and the whole asp page could access them.

Thanks for any help!

Scott Baxter

You need to reference the user control when accessing its public
property:

Change "Response.Write(addressesstring)" to
"Response.Write(My_topdcl.addressesstring)"

The error was telling you exactly what was happening. There was no
"addressstring" variable/property in scope.

Happy coding!
 

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