Question

I am using third party server-side controls on my website (Telerik RadControls for ASP .NET). The menu control has a complex structure which is bloating the size of the viewstate affecting load times. I am not aware of the details of viewstate except that it is used by the web server to keep track of control values.

Since most of the pages on my website are display only, is it possible to disable the viewstate where user input is not taken? All dynamic items are being regenerated on page load in any case.

Was it helpful?

Solution

If you're using asp.net 4, then you can use the ViewStateMode property to control viewstate generation for controls. ViewStateMode

If you're not using asp.net 4, then you can turn of viewstate at the page or control level.

<%@ Page Language="C#" EnableViewState="false"%> //disabling viewstate. 

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstate.aspx

OTHER TIPS

In the top of your aspx page add the parameter enableViewstate="false" on the pages that doesn't need it. it won't disable the viewstate completely though, but reduce the size seriously

I haven't tested this, but I think it's possible..

In your Web.config file add the attribute to the pages tag instead, and then on those pages you need it enabled, add the attribute with true in the top

System.Web.UI.WebControls.CheckBox checkBox = new System.Web.UI.WebControls.CheckBox();
checkBox.EnableViewState = false;

There are different ways of disabling ViewState. In your case, I would recommend disabling the viewstate on the control:

<telerik:RadMenu ViewStateMode="Disabled"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top