最近、someControl.Attributes.Add( "customAttr"、 "customVal")を使用すると、すべてのWebブラウザで互換性がないことが判明しました。カスタム属性の推奨登録は次のとおりです。RegisterExpandoAttribute - Throwing Error
Page.ClientScript.RegisterExpandoAttribute(someControl.ClientID, "customAttr", "customVal")
これは問題です。私はカスタムコントロールを生成するためにListViewを使用しています。特定のシナリオでは、ListViewをリフレッシュまたは再作成する必要があります。これが発生し、ListView項目がexpando属性の登録(この場合は再登録)を試みると、ページに次のエラーがスローされます。
同じキーを持つエントリが既に存在します。
明らかにRegisterExpandoAttribute()はPage.Cacheオブジェクトのように動作しません。キーがすでに存在する場合は、現在の値が上書きされます。私は簡単にこの問題を克服することができますが、これにはより洗練されたソリューションがあるのだろうかと思います。例えば、次のようなメソッドはありません。Page.ClientScript.IsExpandoAttributeRegistered(...)
アイデアはありますか?