如何确保在大量复选框控件上禁用viewstate

本文关键字:控件 复选框 viewstate 何确保 确保 | 更新日期: 2023-09-27 18:12:47

我有一个ASP。具有数千个复选框控件(在父/子层次结构中)的。NET web窗体。页面加载大约需要4秒。我试图提高性能,使页面只需要1-2秒加载。经过一番深入研究后,看起来复选框控件正在生成一个巨大的viewstate对象(在HTML文件中几乎有1MB)。如果我使用原始HTML复选框,页面呈现非常快(我认为这是由于没有创建视图状态)。我试着沿着原始的HTML复选框路线走下去,但是我在调用ASP时遇到了麻烦。. NET方法从JS使用dopostback。无论如何,我的主要目标是消除复选框上的视图状态。我试过禁用复选框控件和ASPX页面上的viewstate来做到这一点。不管我使用什么组合,viewstate对象仍然被创建(正如我所说的,它是巨大的)。我甚至尝试在所有触发的主要事件后面的代码中清除viewstate对象。仍然无法清除视图状态。有没有什么建议,我可以做些什么来禁用复选框上的viewstate,以避免造成性能瓶颈的开销?

如何确保在大量复选框控件上禁用viewstate

保持页面原样的一种方法是扭曲你的复选框,使用占位符并为这个设置EnableViewState="false"

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

另一种方法是将它们全部放在自定义控件中,并为该控件设置EnableViewState="false"