Showing posts with label selection. Show all posts
Showing posts with label selection. Show all posts

Wednesday, March 28, 2012

Strange Behaviour

I have a set of aspx pages created using VSNET 2003/VB. The web site
includes a java based menu. For a specific selection I need to change the
value of a variable in a common class. I set the menu app to call a special
aspx page whose only purpose is to set the class variable and then transfer
to the main aspx page. The initial page originally had only the following
code:
========================================
====
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
CommonClass.strCallFrom = "User"
Server.Transfer("frmFindBand.aspx")
End Sub
========================================
=================
That does not work - the CommonClass.strCallFrom variable is not getting
set? Any ideas as to why this is failing?
TIA
WayneWayne,
Welcome to the web development world. Once you leave a page, it doesn't
exist anymore. Neither there is CommonClass instance, unless you took
special care to make it persistent. You should save the variable in one of a
few persistent storages, for example in a session variable.
Eliyahu
"Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> I have a set of aspx pages created using VSNET 2003/VB. The web site
> includes a java based menu. For a specific selection I need to change the
> value of a variable in a common class. I set the menu app to call a
special
> aspx page whose only purpose is to set the class variable and then
transfer
> to the main aspx page. The initial page originally had only the following
> code:
> ========================================
====
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> CommonClass.strCallFrom = "User"
> Server.Transfer("frmFindBand.aspx")
> End Sub
> ========================================
=================
> That does not work - the CommonClass.strCallFrom variable is not getting
> set? Any ideas as to why this is failing?
>
> TIA
>
> Wayne
>
Is the strCallFrom is a static variable or instance variable? If its not
static variable, I do not see any code to instantiate the CommonClass
object?
Kumar Reddi
http://kumarreddi.blogspot.com
"Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> I have a set of aspx pages created using VSNET 2003/VB. The web site
> includes a java based menu. For a specific selection I need to change the
> value of a variable in a common class. I set the menu app to call a
special
> aspx page whose only purpose is to set the class variable and then
transfer
> to the main aspx page. The initial page originally had only the following
> code:
> ========================================
====
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> CommonClass.strCallFrom = "User"
> Server.Transfer("frmFindBand.aspx")
> End Sub
> ========================================
=================
> That does not work - the CommonClass.strCallFrom variable is not getting
> set? Any ideas as to why this is failing?
>
> TIA
>
> Wayne
>
Note that static variables have application scope as opposed to session.
That means the two sessions while overwrite each other setting.
Eliyahu
"Kumar Reddi" <kumarreddi@.REMOVETHIS.gmail.com> wrote in message
news:%23E8uvTnIFHA.2752@.TK2MSFTNGP12.phx.gbl...
> Is the strCallFrom is a static variable or instance variable? If its not
> static variable, I do not see any code to instantiate the CommonClass
> object?
> --
> Kumar Reddi
> http://kumarreddi.blogspot.com
> "Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
> news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
the
> special
> transfer
following
>
Thanks for the replies guys but I really don't understand the need to
instance the class? If I add a button to the page and issue the transfer
from the click event, things work fine? What is different (I will readily
admit that I have a poor grasp of OO)?
Throughout the other 20+ pages I regularly set a CommonClass variable and
then use it in another page. I thought that was the whole idea of a common
class?
Any education is much appreciated.
Wayne
"Eliyahu Goldin" <removemeegoldin@.monarchmed.com> wrote in message
news:OKCW2SnIFHA.2728@.TK2MSFTNGP09.phx.gbl...
> Wayne,
> Welcome to the web development world. Once you leave a page, it doesn't
> exist anymore. Neither there is CommonClass instance, unless you took
> special care to make it persistent. You should save the variable in one of
a
> few persistent storages, for example in a session variable.
> Eliyahu
> "Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
> news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
the
> special
> transfer
following
>
You won't see a problem until there are simultaneous user's making
requests to your web application. You are using a single location to
store a piece of data for all users. Their requests will start
overwriting this single location with data for each request. Depending
on the timing user A could get user B's results or user B might get
user A's results.
It's always good to keep request state as close to the request as
possible. Don't try to take shortcuts by sticking a piece of data in a
common class and hope that when something later happens it still finds
the data there.
The Context.Items collection is a good place to store the information
you need to carry around.
Scott
http://www.OdeToCode.com/blogs/scott/
On Sun, 6 Mar 2005 11:10:53 -0700, "Wayne Wengert"
<wayneDONTWANTSPAM@.wengert.com> wrote:

>Thanks for the replies guys but I really don't understand the need to
>instance the class? If I add a button to the page and issue the transfer
>from the click event, things work fine? What is different (I will readily
>admit that I have a poor grasp of OO)?
>Throughout the other 20+ pages I regularly set a CommonClass variable and
>then use it in another page. I thought that was the whole idea of a common
>class?
>Any education is much appreciated.
>
Scott;
Thanks for the information. I think I am beginning to see my error here. The
Common Class information exists once for my application and if User A sets a
value in variable "X", any user asking for that variable will get that new
value? This was my first attempt at using a common class and I think I went
way overboard. I'll go back and change all use of the common class variables
to Session objects instead and just use the common class for constant values
like connection strings. Does that sound right?
Wayne
"Scott Allen" <scott@.nospam.odetocode.com> wrote in message
news:f7lm21phif382dg7fl45ee4rfrdpktgn8f@.
4ax.com...
> You won't see a problem until there are simultaneous user's making
> requests to your web application. You are using a single location to
> store a piece of data for all users. Their requests will start
> overwriting this single location with data for each request. Depending
> on the timing user A could get user B's results or user B might get
> user A's results.
> It's always good to keep request state as close to the request as
> possible. Don't try to take shortcuts by sticking a piece of data in a
> common class and hope that when something later happens it still finds
> the data there.
> The Context.Items collection is a good place to store the information
> you need to carry around.
> --
> Scott
> http://www.OdeToCode.com/blogs/scott/
>
> On Sun, 6 Mar 2005 11:10:53 -0700, "Wayne Wengert"
> <wayneDONTWANTSPAM@.wengert.com> wrote:
>
common
>
Hi Wayne:
Yes, that's what can happen with Shared fields in VB.NET.
Like I say, Context.Items can be just as useful as Session if you need
information to stick around during a Server.Transfer
Scott
http://www.OdeToCode.com/blogs/scott/
On Sun, 6 Mar 2005 13:58:41 -0700, "Wayne Wengert"
<wayneDONTWANTSPAM@.wengert.com> wrote:

>Scott;
>Thanks for the information. I think I am beginning to see my error here. Th
e
>Common Class information exists once for my application and if User A sets
a
>value in variable "X", any user asking for that variable will get that new
>value? This was my first attempt at using a common class and I think I went
>way overboard. I'll go back and change all use of the common class variable
s
>to Session objects instead and just use the common class for constant value
s
>like connection strings. Does that sound right?
>Wayne
>

Strange Behaviour

I have a set of aspx pages created using VSNET 2003/VB. The web site
includes a java based menu. For a specific selection I need to change the
value of a variable in a common class. I set the menu app to call a special
aspx page whose only purpose is to set the class variable and then transfer
to the main aspx page. The initial page originally had only the following
code:
============================================
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
CommonClass.strCallFrom = "User"

Server.Transfer("frmFindBand.aspx")

End Sub

================================================== =======

That does not work - the CommonClass.strCallFrom variable is not getting
set? Any ideas as to why this is failing?

TIA

WayneWayne,

Welcome to the web development world. Once you leave a page, it doesn't
exist anymore. Neither there is CommonClass instance, unless you took
special care to make it persistent. You should save the variable in one of a
few persistent storages, for example in a session variable.

Eliyahu

"Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> I have a set of aspx pages created using VSNET 2003/VB. The web site
> includes a java based menu. For a specific selection I need to change the
> value of a variable in a common class. I set the menu app to call a
special
> aspx page whose only purpose is to set the class variable and then
transfer
> to the main aspx page. The initial page originally had only the following
> code:
> ============================================
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> CommonClass.strCallFrom = "User"
> Server.Transfer("frmFindBand.aspx")
> End Sub
> ================================================== =======
> That does not work - the CommonClass.strCallFrom variable is not getting
> set? Any ideas as to why this is failing?
>
> TIA
>
> Wayne
Is the strCallFrom is a static variable or instance variable? If its not
static variable, I do not see any code to instantiate the CommonClass
object?

--
Kumar Reddi
http://kumarreddi.blogspot.com

"Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> I have a set of aspx pages created using VSNET 2003/VB. The web site
> includes a java based menu. For a specific selection I need to change the
> value of a variable in a common class. I set the menu app to call a
special
> aspx page whose only purpose is to set the class variable and then
transfer
> to the main aspx page. The initial page originally had only the following
> code:
> ============================================
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> CommonClass.strCallFrom = "User"
> Server.Transfer("frmFindBand.aspx")
> End Sub
> ================================================== =======
> That does not work - the CommonClass.strCallFrom variable is not getting
> set? Any ideas as to why this is failing?
>
> TIA
>
> Wayne
Note that static variables have application scope as opposed to session.
That means the two sessions while overwrite each other setting.

Eliyahu

"Kumar Reddi" <kumarreddi@.REMOVETHIS.gmail.com> wrote in message
news:%23E8uvTnIFHA.2752@.TK2MSFTNGP12.phx.gbl...
> Is the strCallFrom is a static variable or instance variable? If its not
> static variable, I do not see any code to instantiate the CommonClass
> object?
> --
> Kumar Reddi
> http://kumarreddi.blogspot.com
> "Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
> news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> > I have a set of aspx pages created using VSNET 2003/VB. The web site
> > includes a java based menu. For a specific selection I need to change
the
> > value of a variable in a common class. I set the menu app to call a
> special
> > aspx page whose only purpose is to set the class variable and then
> transfer
> > to the main aspx page. The initial page originally had only the
following
> > code:
> > ============================================
> > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles MyBase.Load
> > CommonClass.strCallFrom = "User"
> > Server.Transfer("frmFindBand.aspx")
> > End Sub
> > ================================================== =======
> > That does not work - the CommonClass.strCallFrom variable is not getting
> > set? Any ideas as to why this is failing?
> > TIA
> > Wayne
Thanks for the replies guys but I really don't understand the need to
instance the class? If I add a button to the page and issue the transfer
from the click event, things work fine? What is different (I will readily
admit that I have a poor grasp of OO)?

Throughout the other 20+ pages I regularly set a CommonClass variable and
then use it in another page. I thought that was the whole idea of a common
class?

Any education is much appreciated.

Wayne

"Eliyahu Goldin" <removemeegoldin@.monarchmed.com> wrote in message
news:OKCW2SnIFHA.2728@.TK2MSFTNGP09.phx.gbl...
> Wayne,
> Welcome to the web development world. Once you leave a page, it doesn't
> exist anymore. Neither there is CommonClass instance, unless you took
> special care to make it persistent. You should save the variable in one of
a
> few persistent storages, for example in a session variable.
> Eliyahu
> "Wayne Wengert" <wayneDONTWANTSPAM@.wengert.com> wrote in message
> news:usT4CLmIFHA.588@.TK2MSFTNGP15.phx.gbl...
> > I have a set of aspx pages created using VSNET 2003/VB. The web site
> > includes a java based menu. For a specific selection I need to change
the
> > value of a variable in a common class. I set the menu app to call a
> special
> > aspx page whose only purpose is to set the class variable and then
> transfer
> > to the main aspx page. The initial page originally had only the
following
> > code:
> > ============================================
> > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles MyBase.Load
> > CommonClass.strCallFrom = "User"
> > Server.Transfer("frmFindBand.aspx")
> > End Sub
> > ================================================== =======
> > That does not work - the CommonClass.strCallFrom variable is not getting
> > set? Any ideas as to why this is failing?
> > TIA
> > Wayne
You won't see a problem until there are simultaneous user's making
requests to your web application. You are using a single location to
store a piece of data for all users. Their requests will start
overwriting this single location with data for each request. Depending
on the timing user A could get user B's results or user B might get
user A's results.

It's always good to keep request state as close to the request as
possible. Don't try to take shortcuts by sticking a piece of data in a
common class and hope that when something later happens it still finds
the data there.

The Context.Items collection is a good place to store the information
you need to carry around.

--
Scott
http://www.OdeToCode.com/blogs/scott/

On Sun, 6 Mar 2005 11:10:53 -0700, "Wayne Wengert"
<wayneDONTWANTSPAM@.wengert.com> wrote:

>Thanks for the replies guys but I really don't understand the need to
>instance the class? If I add a button to the page and issue the transfer
>from the click event, things work fine? What is different (I will readily
>admit that I have a poor grasp of OO)?
>Throughout the other 20+ pages I regularly set a CommonClass variable and
>then use it in another page. I thought that was the whole idea of a common
>class?
>Any education is much appreciated.
Scott;

Thanks for the information. I think I am beginning to see my error here. The
Common Class information exists once for my application and if User A sets a
value in variable "X", any user asking for that variable will get that new
value? This was my first attempt at using a common class and I think I went
way overboard. I'll go back and change all use of the common class variables
to Session objects instead and just use the common class for constant values
like connection strings. Does that sound right?

Wayne

"Scott Allen" <scott@.nospam.odetocode.com> wrote in message
news:f7lm21phif382dg7fl45ee4rfrdpktgn8f@.4ax.com...
> You won't see a problem until there are simultaneous user's making
> requests to your web application. You are using a single location to
> store a piece of data for all users. Their requests will start
> overwriting this single location with data for each request. Depending
> on the timing user A could get user B's results or user B might get
> user A's results.
> It's always good to keep request state as close to the request as
> possible. Don't try to take shortcuts by sticking a piece of data in a
> common class and hope that when something later happens it still finds
> the data there.
> The Context.Items collection is a good place to store the information
> you need to carry around.
> --
> Scott
> http://www.OdeToCode.com/blogs/scott/
>
> On Sun, 6 Mar 2005 11:10:53 -0700, "Wayne Wengert"
> <wayneDONTWANTSPAM@.wengert.com> wrote:
> >Thanks for the replies guys but I really don't understand the need to
> >instance the class? If I add a button to the page and issue the transfer
> >from the click event, things work fine? What is different (I will readily
> >admit that I have a poor grasp of OO)?
> >Throughout the other 20+ pages I regularly set a CommonClass variable and
> >then use it in another page. I thought that was the whole idea of a
common
> >class?
> >Any education is much appreciated.
Hi Wayne:

Yes, that's what can happen with Shared fields in VB.NET.

Like I say, Context.Items can be just as useful as Session if you need
information to stick around during a Server.Transfer

--
Scott
http://www.OdeToCode.com/blogs/scott/

On Sun, 6 Mar 2005 13:58:41 -0700, "Wayne Wengert"
<wayneDONTWANTSPAM@.wengert.com> wrote:

>Scott;
>Thanks for the information. I think I am beginning to see my error here. The
>Common Class information exists once for my application and if User A sets a
>value in variable "X", any user asking for that variable will get that new
>value? This was my first attempt at using a common class and I think I went
>way overboard. I'll go back and change all use of the common class variables
>to Session objects instead and just use the common class for constant values
>like connection strings. Does that sound right?
>Wayne

Strange cache behavior

Not sure if this is by design or not, but it looks weird.

I get a datatable from cache:

dt = (DataTable) Cache[CacheKey];

Then, depending on selection in dropdown list I filter it:

DataView dv = dt.DefaultView;
if (cboStatus.SelectedIndex != 0)
{
int Status = int.Parse (cboStatus.SelectedItem.Value);
dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
}

And then, bind it to the datagrid:

grdMain.DataSource = dv;
grdMain.DataBind();

However, if dataview filter is set first time, it stays this way. What I
mean is the change in dataview gets stored in cache and dt = (DataTable)
Cache[CacheKey] brings back the old value on the next postback.

The question is this: if I add an item to cache and then modify this item,
would the modified item be automatically changed in cache? In other words,
is cache set by value or by reference?

Thanks,

-StanWith reference types, by reference. A DataTable is a reference type.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living

"Stan" <nospam@.yahoo.com> wrote in message
news:O8yxgvZmEHA.3900@.TK2MSFTNGP10.phx.gbl...
> Not sure if this is by design or not, but it looks weird.
> I get a datatable from cache:
> dt = (DataTable) Cache[CacheKey];
> Then, depending on selection in dropdown list I filter it:
> DataView dv = dt.DefaultView;
> if (cboStatus.SelectedIndex != 0)
> {
> int Status = int.Parse (cboStatus.SelectedItem.Value);
> dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
> }
> And then, bind it to the datagrid:
> grdMain.DataSource = dv;
> grdMain.DataBind();
> However, if dataview filter is set first time, it stays this way. What I
> mean is the change in dataview gets stored in cache and dt = (DataTable)
> Cache[CacheKey] brings back the old value on the next postback.
> The question is this: if I add an item to cache and then modify this item,
> would the modified item be automatically changed in cache? In other words,
> is cache set by value or by reference?
> Thanks,
> -Stan
if you dont want that behavior then always store a copy.
set a copy and get a copy

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"Kevin Spencer" <kspencer@.takempis.com> wrote in message
news:OYhkV$ZmEHA.3336@.TK2MSFTNGP10.phx.gbl...
> With reference types, by reference. A DataTable is a reference type.
> --
> HTH,
> Kevin Spencer
> .Net Developer
> Microsoft MVP
> I get paid good money to
> solve puzzles for a living
> "Stan" <nospam@.yahoo.com> wrote in message
> news:O8yxgvZmEHA.3900@.TK2MSFTNGP10.phx.gbl...
>> Not sure if this is by design or not, but it looks weird.
>>
>> I get a datatable from cache:
>>
>> dt = (DataTable) Cache[CacheKey];
>>
>> Then, depending on selection in dropdown list I filter it:
>>
>> DataView dv = dt.DefaultView;
>> if (cboStatus.SelectedIndex != 0)
>> {
>> int Status = int.Parse (cboStatus.SelectedItem.Value);
>> dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
>> }
>>
>> And then, bind it to the datagrid:
>>
>> grdMain.DataSource = dv;
>> grdMain.DataBind();
>>
>> However, if dataview filter is set first time, it stays this way. What I
>> mean is the change in dataview gets stored in cache and dt = (DataTable)
>> Cache[CacheKey] brings back the old value on the next postback.
>>
>> The question is this: if I add an item to cache and then modify this
>> item,
>> would the modified item be automatically changed in cache? In other
>> words,
>> is cache set by value or by reference?
>>
>> Thanks,
>>
>> -Stan
>>
>>
Stan wrote:

>Not sure if this is by design or not, but it looks weird.
>I get a datatable from cache:
>dt = (DataTable) Cache[CacheKey];
>Then, depending on selection in dropdown list I filter it:
>DataView dv = dt.DefaultView;
>if (cboStatus.SelectedIndex != 0)
>{
> int Status = int.Parse (cboStatus.SelectedItem.Value);
> dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
>}
>And then, bind it to the datagrid:
>grdMain.DataSource = dv;
>grdMain.DataBind();
>However, if dataview filter is set first time, it stays this way. What I
>mean is the change in dataview gets stored in cache and dt = (DataTable)
>Cache[CacheKey] brings back the old value on the next postback.
>The question is this: if I add an item to cache and then modify this item,
>would the modified item be automatically changed in cache? In other words,
>is cache set by value or by reference?
>Thanks,
>-Stan
>
>
You need to update cache with the latest version. It doesn't
automatically update cache.

--

SevDer
http://www.sevder.com
> You need to update cache with the latest version. It doesn't
> automatically update cache.

That is what I thought, but it does update itslef by reference..
Yes Stan,

The Cache collection maintain the reference type objects by reference is by
design behavior and regarding on this, we can just think it as other
serverside data stores such as SessionState , ApplicationState...

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx
Hi Stan,

Have you had any further ideas on this issue? If there is anything else we
can help, please feel free to post here. Thanks.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Strange cache behavior

Not sure if this is by design or not, but it looks weird.
I get a datatable from cache:
dt = (DataTable) Cache[CacheKey];
Then, depending on selection in dropdown list I filter it:
DataView dv = dt.DefaultView;
if (cboStatus.SelectedIndex != 0)
{
int Status = int.Parse (cboStatus.SelectedItem.Value);
dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
}
And then, bind it to the datagrid:
grdMain.DataSource = dv;
grdMain.DataBind();
However, if dataview filter is set first time, it stays this way. What I
mean is the change in dataview gets stored in cache and dt = (DataTable)
Cache[CacheKey] brings back the old value on the next postback.
The question is this: if I add an item to cache and then modify this item,
would the modified item be automatically changed in cache? In other words,
is cache set by value or by reference?
Thanks,
-StanWith reference types, by reference. A DataTable is a reference type.
HTH,
Kevin Spencer
.Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living
"Stan" <nospam@.yahoo.com> wrote in message
news:O8yxgvZmEHA.3900@.TK2MSFTNGP10.phx.gbl...
> Not sure if this is by design or not, but it looks weird.
> I get a datatable from cache:
> dt = (DataTable) Cache[CacheKey];
> Then, depending on selection in dropdown list I filter it:
> DataView dv = dt.DefaultView;
> if (cboStatus.SelectedIndex != 0)
> {
> int Status = int.Parse (cboStatus.SelectedItem.Value);
> dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
> }
> And then, bind it to the datagrid:
> grdMain.DataSource = dv;
> grdMain.DataBind();
> However, if dataview filter is set first time, it stays this way. What I
> mean is the change in dataview gets stored in cache and dt = (DataTable)
> Cache[CacheKey] brings back the old value on the next postback.
> The question is this: if I add an item to cache and then modify this item,
> would the modified item be automatically changed in cache? In other words,
> is cache set by value or by reference?
> Thanks,
> -Stan
>
if you dont want that behavior then always store a copy.
set a copy and get a copy
Regards,
Hermit Dave
(http://hdave.blogspot.com)
"Kevin Spencer" <kspencer@.takempis.com> wrote in message
news:OYhkV$ZmEHA.3336@.TK2MSFTNGP10.phx.gbl...
> With reference types, by reference. A DataTable is a reference type.
> --
> HTH,
> Kevin Spencer
> .Net Developer
> Microsoft MVP
> I get paid good money to
> solve puzzles for a living
> "Stan" <nospam@.yahoo.com> wrote in message
> news:O8yxgvZmEHA.3900@.TK2MSFTNGP10.phx.gbl...
>
Stan wrote:

>Not sure if this is by design or not, but it looks weird.
>I get a datatable from cache:
>dt = (DataTable) Cache[CacheKey];
>Then, depending on selection in dropdown list I filter it:
>DataView dv = dt.DefaultView;
>if (cboStatus.SelectedIndex != 0)
>{
> int Status = int.Parse (cboStatus.SelectedItem.Value);
> dv.RowFilter = string.Format ("CollectionStatusKey = {0}", Status);
>}
>And then, bind it to the datagrid:
>grdMain.DataSource = dv;
>grdMain.DataBind();
>However, if dataview filter is set first time, it stays this way. What I
>mean is the change in dataview gets stored in cache and dt = (DataTable)
>Cache[CacheKey] brings back the old value on the next postback.
>The question is this: if I add an item to cache and then modify this item,
>would the modified item be automatically changed in cache? In other words,
>is cache set by value or by reference?
>Thanks,
>-Stan
>
>
You need to update cache with the latest version. It doesn't
automatically update cache.
SevDer
http://www.sevder.com
> You need to update cache with the latest version. It doesn't
> automatically update cache.
That is what I thought, but it does update itslef by reference..
Yes Stan,
The Cache collection maintain the reference type objects by reference is by
design behavior and regarding on this, we can just think it as other
serverside data stores such as SessionState , ApplicationState...
Regards,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
Get Preview at ASP.NET whidbey
http://msdn.microsoft.com/asp.net/whidbey/default.aspx
Hi Stan,
Have you had any further ideas on this issue? If there is anything else we
can help, please feel free to post here. Thanks.
Regards,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)