【问题标题】:How to ensure viewstate is disabled on a large number of checkbox controls?如何确保在大量复选框控件上禁用视图状态?
【发布时间】:2014-07-14 01:08:29
【问题描述】:

我有一个包含数千个复选框控件(在父/子层次结构中)的 ASP.NET Web 表单。页面加载大约需要 4 秒。我正在尝试提高性能,以便页面加载只需约 1-2 秒。在进行了一些挖掘之后,看起来复选框控件正在生成一个巨大的视图状态对象(在 HTML 文件中几乎 1MB)。如果我使用原始 HTML 复选框,页面会很快呈现(我认为这是由于没有创建视图状态)。我尝试使用原始 HTML chechbox 路由,但无法使用 dopostback 从 JS 调用 ASP.NET 方法。无论如何,我的主要目标是消除复选框上的视图状态。我已经尝试通过禁用复选框控件以及 ASPX 页面上的视图状态来做到这一点。不管我使用什么组合,视图状态对象仍在创建中(正如我所说,它很大)。我什至尝试在所有触发的主要事件中清除代码中的视图状态对象。清除视图状态仍然没有运气。关于我可以做些什么来禁用复选框上的视图状态以避免看起来导致性能瓶颈的开销的任何建议?

【问题讨论】:

    标签: c# asp.net viewstate


    【解决方案1】:

    保持页面不变的一种方法是使用占位符扭曲复选框并为此设置EnableViewState="false"

    <asp:PlaceHolder runat="server" EnableViewState="false">
        <asp:CheckBox runat="server" ID="cbOne" />
    </asp:PlaceHolder>
    

    其他方法是将它们全部放在自定义控件中并为此控件设置EnableViewState="false"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多