473,408 Members | 1,744 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,408 software developers and data experts.

Class questions

I have an employee class - in my page, when it loads, it gets all the
employee data, including the employee Number.
I have
Dim emp As New Employee (at the top of the page, so it's global to the page)
emp.empno=Datareader("empno") - and yes, it does get populated, correctly,
at page Load

Here's what I need, and isn't working:
I have a button on that page, which does a Server.Transfer to another page,
using that number, so I do something like this:
Server.Transfer("secondpage.aspx?empno=" & emp.empno, False) - I've tried
True also

however, at this point, emp.empno shows as '0' - not the real number

Is this the correct way to use class properties?
How long is a (Public) property like this available in the page?
What am I missing?

Oct 4 '07 #1
3 1157
Hi,
How long is a (Public) property like this available in the page?
Only while the page is rendering. When the page postsback you will no
longer have your object.
What am I missing?
To store data across postbacks you need to use something like
ViewState, or Session.

Eg.
If Not IsPostback Then
emp.empno=Datareader("empno")
ViewState["empno"] = emp.empno
Else
emp.empno=ViewState["empno"]
End if

*Controls* preserve their state via the ViewState, which is why you
may have expected your object to also store it's state.

Jim

Oct 4 '07 #2
You can try to pass your info in the Context Object, that might work ???

HttpContext.Current.Items.Add("empno",emp.empno)


<jd*******@gmail.comwrote in message
news:11**********************@r29g2000hsg.googlegr oups.com...
Hi,
>How long is a (Public) property like this available in the page?

Only while the page is rendering. When the page postsback you will no
longer have your object.
>What am I missing?

To store data across postbacks you need to use something like
ViewState, or Session.

Eg.
If Not IsPostback Then
emp.empno=Datareader("empno")
ViewState["empno"] = emp.empno
Else
emp.empno=ViewState["empno"]
End if

*Controls* preserve their state via the ViewState, which is why you
may have expected your object to also store it's state.

Jim

Oct 4 '07 #3
On Oct 4, 7:33 pm, jdlwri...@gmail.com wrote:
Hi,
How long is a (Public) property like this available in the page?

Only while the page is rendering. When the page postsback you will no
longer have your object.
What am I missing?

To store data across postbacks you need to use something like
ViewState, or Session.

Eg.
If Not IsPostback Then
emp.empno=Datareader("empno")
ViewState["empno"] = emp.empno
Else
emp.empno=ViewState["empno"]
End if

*Controls* preserve their state via the ViewState, which is why you
may have expected your object to also store it's state.

Jim

Another option would be to create a label on your page which is
invisible (visible=false):
On page_load:
if not page.ispostback then
HiddenLabel.text=emp.empno
end if

On button click:
Server.Transfer("secondpage.aspx?empno=" & HiddenLabel.text, False)

As Jim said, Controls preserve their viewstate so storing the Emp.
Number in a Label Control will preserve it for future postbacks.
Session variables would also work but you have to remember that if
your user opens up 10 browser windows, they will all share the same
sesison variables. So if you use session("EmpNumber")=1 in one browser
window, session("EmpNumber") will be 1 in ALL of the browser windows.
If you are using querystrings to send data (which allow multiple
browser windows), session variables will probably not work well for
you.

IfThenElse suggested the HTTPContext.Items collection which is also
useful, but has its own caveats.The HTTPContext is only available
while the request is being processed. So if you add the Employee
object to the collection on the Submit button click, the Context
colelction will be available on the next page (only if you use
server.transfer). But once you are on the next page, you will need to
save that employee information somewhere else because once that page
loads, the HTTPContext is dumped. So if your user were to refresh the
second page, your code would have no way of recovering the Employee
object if it was only stored in the HTTPContext.Items collection.

HTH,

-E

Oct 5 '07 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Sebastian Faust | last post by:
Hi, I have 4 questions related to templates. I wanna do something like the following: template<typename T> class Template { public: Template_Test<T>()
4
by: Chuck Ritzke | last post by:
I keep asking myself this question as I write class modules. What's the best/smartest/most efficient way to send a large object back and forth to a class module? For example, say I have a data...
3
by: alexhong2001 | last post by:
When design a class, should always make it "derivable" as a base class? Is there really a situation that the designed class not "derivable"? When should make a member "protected"? Only when...
16
by: Merlin | last post by:
Hi Been reading the GOF book and started to make the distinction between Class and Interface inheritance. One question though: Do pure abstract classes have representations? (data members?)...
6
by: John Lee | last post by:
Hi, I was trying to find an elegant way of implementing/modelling the following scenario: student, borrower, reference and cosigner are all human beings - we would think to create a person...
4
by: Robert W. | last post by:
I'm thinking of building a complex data model with a number of nested classes but need to know something first. To simplify my question, let me present you this sample data model MainClass...
6
by: rodchar | last post by:
Hey all, I'm trying to understand Master/Detail concepts in VB.NET. If I do a data adapter fill for both customer and orders from Northwind where should that dataset live? What client is...
4
by: alisaee | last post by:
plz check what i have made wrong what is requierd her is to creat class queue and class stack and run the push,pop operation . #include<iostream.h> #include<conio.h> #include<stdio.h> class...
11
by: anongroupaccount | last post by:
What measures should be taken to avoid this sort of thing? class Base { }; class Derived1 : public Base { private: int i, j, k;
19
by: Michael | last post by:
Hi, typedef std::vector<Vehicle* VehicleList; Vehicle is a UDT, or a class. Why is Vehicle* not just Vehicle in < >. Which one is better and why? If you could explain it by laying out some...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.