State Management :: Disabling ViewState For DropDownList And Using AutoPostback With SelectedIndexChanged?
Dec 3, 2010
The sites I mantain are using way too much ViewState and I'd like to reduce that so the size of the page is reduced. I've done a lot to remedy this but I have an issue relating to DropDown lists that use AutoPostbacks.I have a dropdown list with a lot of list items and a good part of the ViewState usage is to hold the list item data. If I disable ViewState and set the AutoPostBack property to true, the page will post back and in the page load I am trying to repopulate the dropdown list with cached data. However, it seems that the SelectedIndexChanged event doesn't fire when EnableViewState="false".Is it possible to make this work without enabling ViewState for the drodown list?
SelectedIndexChanged event doesn't fire for the first item of the DropDownList. For any other item SelectedIndexChanged fires, but not for the first one.Could someone, please, explain what kind of magic is it?(I use Visual Studio 2008)
I have a simple search page with a drop down list that I would like the value to persist on refresh..basically the user will select their location from the dropdownlist and this will be used to populate a gridview. After this the page is set to refresh at a set interval and use the same location data initially selected by the user. However the initial selection is lost each time the page refreshes.
p.s system is to old for ajax!
<meta http-equiv="Refresh" content="300" /> <script runat="server"> Dim connectionString As String = ConfigurationManager.ConnectionStrings("****").ConnectionString Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Not IsPostBack Then Dim conn As SqlConnection conn = New SqlConnection(connectionString) Dim Locationcommandtext As String Locationcommandtext = "SELECT * FROM [Location] ORDER BY [Location]" Dim loccomm As SqlCommand loccomm = New SqlCommand(Locationcommandtext, conn) Dim reader As SqlDataReader Try conn.Open() reader = loccomm.ExecuteReader() Locations.DataSource = reader Locations.DataValueField = "LocationID" Locations.DataTextField = "Location" Locations.DataBind() Catch ex As SqlException Response.Write("SQL Error: " & ex.ToString()) Finally conn.Close() End Try Else '"Viewstate should kick in here" End If End Sub </script>
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.
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