State Management :: Can't Change CSS Styles When Viewstate Is Enabled
Jan 5, 2011
I've inherited a project and in effort to beautify it, I'm replacing an image based menu bar with a CSS based bar. When you click on a button it takes you to the appropriate page.
Currently in the OnInit() it checks what page you're on and then changes the URL of the image for the appropriate button to be the "active" image for that button:
Pretty simple, and works fine, but it's a pain to add new items, because I need to create a new image and if I want to change the look, I have to create a whole new slew of buttons.
I have built out the CSS menu using basic UL and LI and all the hovers and links work fine. My issue comes when I want to set the "active" item. The way the CSS works is by either setting the CLASS of the active item to "active" or I could easily change it to set the ID of the item to "active", but in either case the viewstate crashes on any posts because the object is not the same as it was when the page loaded, since the style is updated when the OnInit(); event goes off.
I've tried both setting the class name:
menuFacilities.Attributes.Add("class", "active");
as well as directly applying the CSS style:
menuFacilities.Style.Add("background", "#1376c9 url('images/topnav_active.gif') repeat-x;");
Both work fine on the initial page load, but once I click anything that posts, it crashes with a viewstate failure.
If I set the enableviewstate="false" then it works fine between different page loads, but not if I post to the same page (ie submit a search form)
I can't figure out how to handle the "active" object. For some reason the image URL works for asp:Imagebuttons
Here's what one of the items in the menu looks like (pretty simple stuff here):
Now here is the weird thing. First i am running it locally on the built in vs2008 web server.I load my control in fine, do a postback from a linkbutton, locally on my machine it all works fine, no issue.However when it goes onto my host, it falls over with the message:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.Now i also load controls dynamically and use postbacks and things in the admin area of the site...and that works fine, however my front end just keeps failing? See the code behing below:
I have been getting this error a lot lately with some of my users, and I had a couple of concerns with view state and I have read so many articles but I am still lost..
1. I use masterpage on all the pages and I need viewstate for some of the pages but..
There is a page where a user will fill out the information and then submit this data to a cgi server, and it is where I get most of the Client Disconnected errors, what would happen if I disable viewstate when they click on that button?
Now when a user browses from one page to another, does the view state from the previous page get deleted? If not how would I delete it?
Does the master page have its own viewstate? Would I be able to make sure none of items on my master page are using the viewstate?
I want to know that when we create custom controls, then is there State Management through ViewState done automatically or we have to handle it explicitely ?Since i have created Custom Controls that is behaving as if it is not maintaining its state on PostBack.
In my page, I need to enable a text box when user click on check box(checked). I have used javascript for this. It works fine but when there is postback for the page, the textbox becomes disabled again although the check box is checked. But the value in textbox still appears. Is there any method to retain the enabled state for text box on postback other than using hidden values?
I start with a blank ASP.NET page where I disable ViewState for the whole page with EnableViewState=False and even ViewStateMode=Disabled.keep adding various controls to the page -- Label, Table, Calendar, TextBox, DropDownList.Everything looks good, i.e. my __VIEWSTATE tag fluctuates between 24 and 28 characters.As soon as I add a single RadioButton (or CheckBox), the __VIEWSTATE shoots up to 130 characters. And it keeps growing by over 100 characters every time I add another RadioButton.
I have a code like this in the Me.LoadComplete event.
[Code]....
Now I would like to set this viewstate("data") = nothing on a certain button click in a user control (.ascx) in this page but it doesnt clear the viewstate. What am I doing wrong? In the onClick even of the button in the .ascx I write Me.viewstate("data") = Nothing
I want to use textbox value after I visit from current to other page then again to current page using viewstate but value should be the one when I was current page last time.
I am creating a simple string of values that get added to a label after a post back. I am setting the values thorugh ViewState. However, my appended values do not get updated until AFTER the 2nd postback. Example:
On Page_Load the label displays a "0";
If I enter a "1" in the text box and click the button the label still displays a "0";
If I click the button again (the 2nd postback) then my label correctly displays "0,1"; This works for whatever value I enter after. i.e. "0,1,35,hello world", etc.
I am developing a a web application of a general store where the operator has to enter the things what customer has purchased. Like daily usage item,or anything. So I have form in which I first ask how much item u wannt to register...(if he has 20-30 number of items then operator will enter 20-30 then in gridview 20-30 item are opened. With bind dropdownbox containing name of item ,then textboxs containing mrp, value, stock avail of that item. Here is the link for demo. [URL]. Problem is suppose the operator enter the value above 20, then viewstate size id about 1.50Mb that's too heavy. [Code]....
I stored a list<mytype> object in a viewstate. Type of list<mytype> comes from a public structure which is defined at page.
When I try to convert viewstate to a list<mytype> object it cause error.
Public struct mytype {....} Page_load() { list<mytype> obj = new list<mytype>(); viewstate["mystate"]=obj } My_function(){ list<mytype> tempobj = new list<mytype>(); tempobj = (list<mytype>)viewstate["mystate"];// this line cause error ! }
I want to store List<Class> object to ViewState, when i try to do this than its giving me error to make class serialize,but my class is partial class so didn't get serialize keyword on class how can i store List object to viewstate.
i want to store IQueryable value to ViewState. my code is as below:
Private Property _Query() As IQueryable Get Return CType(ViewState("_Query"), IQueryable) End Get Set(ByVal value As IQueryable) ViewState("_Query") = value End Set
but when i run my page i get following error:
Type 'System.Data.Linq.DataQuery`1[[DynamicQueries.VW_EmployeeProfile_Filter, DynamicQueries, ersion=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' in Assembly 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable
what should i do to get rid of this error. previously i was doing like this:
Private Shared _Query As IQueryable
but problem is that in Multi users environament, Shared variable is making problem, that is why i want to store it in ViewState.
As you know viewstate can recognize as a vulnarable item if we do not encrype it I know how to encrype the viewstate that I define in a web page but my problem start from here I downloaded a software which help you to exract the unencrypted viewstate of every website the link of that software is as follow:
[URL]
but when I make even empty page without viewstate ,this program can extract the viewstae of my page but if check some website like google ,yahoo,amazoon
I have an application that I am working on. We are experiencing odd outages daily. The outages actually bring down the Virtual Servers (web farm of 4 VMs). The last odd metric before VM becomes inaccessible is that disk I/O is at 100%. While discussing this with the client, an idea was thrown out that I wouldn't have considered because I have never heard of such a thing. The idea was that our immense ViewState (yes I will be working on reducing that in the next release) overwhelmed the server or something and the server needed to start writing the ViewState to a file in a temporary folder somewhere. The thought was that when the server started to get overwhelmed, it would have to queue requests and would run out of memory and need to start using disk.
My application is poorly written and the viewstate is completely overused. However, it works 23+ hours of the day including through peak times without problems. But I have never heard of IIS or ASP.NET writing information to files on the server while queueing requests. I had no answer for this seemingly outrageous theory. Can anyone confirm for me that this is not how ASP.NET (2.0) or IIS are written?
In our control environment, we've started, somewhat intermittently, getting:
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
on our website.It also suggests:
Source Error: The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:
1. Add a "Debug=true" directive at the top of the file that generated the error. Example:
<%@ Page Language="C#" Debug="true" %> or:
2) Add the following section to the configuration file of your application:
Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.
Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.
We already have compilation debug as true. We have upgraded our website to ASP.NET 4.0, although our middle tier components are still at 3.5. As we do in out production machine configs (which are using ASP.NET 3.5) we have
This control environment is not in a server farm. Why is it suggesting that I turn on debug, when it's already on. Why isn't it showing me my source code?
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
my website was designed using dotnet 2003 worked under dotnet framework 1.0 the website was working fine then i had to upgrade the server to windows 2008 iis 7.0 so i configured the website to work under dotnet frame work 2.0 and the problem started to show up
I have a project in which several modules need to retrieve assorted scalar values (ie. int, string, etc.) before the ViewState is reestablished. To date I've been using the Session object for this though things are getting somewhat unwieldly now. Also Module A's session variables should really only be accessible by Module A, Module B's session variables really only accessible by Module B, etc. - yet with the Session object no such scope is available.
I am having trouble turning off viewstate for the controls in a page/form. Whatever I try the controls preserve & display the user input. I first turned viewstate off at control level, then page level and finally site level,yet still the form repopulates with values entered.
Inspite of all this the textbox, checkboxes, dropdowns etc preserve and display the user input on postback. Obviously I am doing something 'dumb' or laboring under a misconception. I'd like to know what!
Incidentally a gridview on the same page which displays all records from the table the form is used to fill can be disabled, ensuring it shows all records + the new one).