Skip to main content
 首页 » 编程设计

c#之在 web.config 中禁用所有 Label 控件的 View 状态

2024年02月23日33webabcd

是否可以在 web.config 中禁用特定类型控件的 View 状态?

我知道我可以使用 <pages enableViewState="false"> 禁用所有页面 的 View 状态,但是如果我只想定位所有 Label 控件怎么办?

请您参考如下方法:

其中一种粗略的方法可能是在页面中递归地迭代所有控件并禁用标签控件的 View 状态 - 明显的问题是您需要在页面周期的早期执行此操作,然后在这种情况下,您可能错过了动态添加的控件。

更优雅的解决方案是创建一个继承自标签控件的自定义控件并禁用 View 状态(比如在构造函数中)——例如

public class MyLabel : System.Web.UI.WebControls 
{ 
  Public MyLabel()  
  {   
    EnableViewState = false; 
  } 
} 

(请注意,在稳健的实现中,您应该确保 View 状态在保存之前被禁用。)

现在,您可以使用 ASP.NET tag mapping feature从 web.config 将所有标签控件映射到您的标签控件。