什么时候禁用视图状态是安全的?

2024-02-11

什么时候禁用视图状态是安全的?用于哪些控件?什么情况下?

在用户控件中,我禁用了视图状态,但是如果我尝试单击此控件

<asp:LinkButton ID="LinkButton1" runat="server" 
  CommandName="Delete" 
  OnClientClick="return confirm('¿Está seguro que desea eliminar el mensaje?');"
  EnableViewState="true">
    <asp:Image ID="ImageButton1" runat="server" ImageUrl="~/Content/Images/delete.png" 
        ToolTip="Eliminar mensaje" /> Eliminar 
</asp:LinkButton>

我收到 System.InvalidOperationException 异常。它位于 ListView 内部。


这归结为您是否希望页面在回发过程中记住事情。如果您要在每个回发视图状态上重新创建或分配值,则没有必要

Here's http://learnitfromvince.blogspot.com/2008/04/when-to-disable-and-enable-viewstate-on.html一些好的建议

在控件上动态插入值(通过绑定或 以编程方式分配) – 该控件的值不会 重新渲染时保留,例如 从视图 1 切换到视图 2。但是你 必须考虑两件事,如果你 考虑重新填充值 每个渲染都很难实现 那么不要禁用视图状态,如果 那么你可以禁用它并且 重新初始化渲染控件 事件。我为什么建议这个?它是 因为处理服务器端代码是 比传输大数据快得多 垃圾数据返回服务器并 往返时向客户提供。

On Datalist 和 DropDownList – 如果您不使用 On Selected Index Change 事件,则可以禁用视图状态。

在 Gridviews 上 – 这是最难决定是否禁用的部分 查看状态或保留它。如果你是 只是显示数据,甚至 仅用于选择,然后 禁用视图状态。如果你是 使用分页、编辑或删除 功能则不要。网格视图有 最大的视图状态容量,以便您 应该明智地使用它。如果你必须 更新多达 5 列那为什么 不仅仅是打开另一个视图然后设置 那里的值需要更新 而不是在 gridview 上更新它 直接地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么时候禁用视图状态是安全的? 的相关文章

随机推荐