最近,我发现使用: someControl.Attributes.Add("customAttr", "customVal") 并不兼容所有的网络浏览器。自定义属性的推荐注册是:
Page.ClientScript.RegisterExpandoAttribute(someControl.ClientID, "customAttr", "customVal")
好的,这就是问题所在。我正在使用 ListView 生成自定义控件。在某些情况下,必须刷新/重新创建 ListView。发生这种情况时,ListView 项尝试注册(在本例中为重新注册)expando 属性,页面将引发以下错误:
已存在具有相同键的条目。
显然 RegisterExpandoAttribute() 的行为不像 Page.Cache 对象,如果键已经存在,则覆盖当前值。我可以轻松解决这个问题,但我想知道是否有更优雅的解决方案。例如,没有类似的方法: Page.ClientScript.IsExpandoAttributeRegistered(...)
有任何想法吗?