从代码隐藏后禁用ViewState

时间:2014-07-22 08:04:31

标签: c# asp.net viewstate

我对ViewState有疑问我想从CodeBehind禁用ViewState,因为我在我的应用程序中使用的控件可用于许多客户端,因此无法从UI端禁用ViewState。

我有像

这样的控件
<%@ Control Language="C#" ClassName="allrealTimeHorizonAndChartControls" Inherits="QFlife.IrApps.SM6.TimeControl" %>
<div style="float:left; width: 570px; border-top:1px solid #EDEDED;" class="borderright">
    <div style="float:left; width:570px">
        <input ID="Submit1" class="update_button" type="submit" value="<%= IRAppMgr.Translate("command_update") %>" />
    </div>
    <%--<div class="HelpButton" style="float:left; width:285px">
        <% string culturename = ""; %>
        <% culturename = IRAppMgr.UiCulture.Name; %>
        <a class="help" target="_blank" href="http://ir.quartalflife.com/qmip/qsm/public_html/sm6help/navigation_en-US.jsp">
            help
        </a>
    </div>--%>
</div>
 <asp:ObjectDataSource ID="SharesDS" runat="server" DataObjectTypeName="Qfx.DataClasses.Config.Option"
        SelectMethod="SelectOptions" TypeName="Qfx.Bases.data.DataManager">
        <SelectParameters>
            <asp:ControlParameter ControlID="ClientMarker" Name="appConfig" PropertyName="Config"
                Type="Object" />
            <asp:ControlParameter ControlID="ClientMarker" Name="client" PropertyName="Client" />
            <asp:Parameter Name="selection" DefaultValue="shares" />
        </SelectParameters>
    </asp:ObjectDataSource>

我想为ObjectDataSource禁用ViewState, 现在我想在我的Qfx.Bases.data.DataManager类上做一些事情,所以它应该适用于所有客户端。

我的DataManager类看起来像

     public class DataManager
     {
        //All Code Goes Here
     }

我已尝试过以下的代号

        Page P = HttpContext.Current.Handler as Page;
        P.ViewStateMode = ViewStateMode.Disabled;

但我得HttpContext.Current.Handler为空 任何人都可以建议我怎么能实现这个。

1 个答案:

答案 0 :(得分:0)

见这里:http://www.c-sharpcorner.com/UploadFile/rohatash/various-ways-to-disable-viewstate-in-Asp-Net-4-0/

它提供了一个示例,通过添加OnInit事件并使用this.EnableViewState = false来禁用整个页面的视图状态。您可以对单个控件执行相同的操作。