asp.net 2.0 で、ListItemの属性がviewstateで保持されない(Attributesが保存されない)

http://japan.internet.com/developer/20060207/25.html以下は、asp.net1.xの話らしいが、これが原因な気がする。


ListItemクラスはWebControlから派生したクラスではなく、Attributesプロパティを持っていますが、
その値はビューステートに保存されません。

ListItem クラスhttp://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.listitem(VS.80).aspx


継承階層
System.Object
System.Web.UI.WebControls.ListItem


ここには、実は2つのバグがあります。1つは、リストコントロールが項目属性をレンダリングしないこと、

もう1つは、ListItemクラスが値をビューステートに保存しないこと
(したがって、ポストバックで値が失われること)です。
asp.net2.0では、リストコントロールが項目属性をレンダリングしない問題は解決されているみたい。
実際にやってみたら出来た。

asp.netは、ただでさえ動き(ライフサイクル)を把握しづらいのに、こういうバグ(仕様バグ?)があって一貫した動きをしてくれないのは、ほんと勘弁してほしい。
標準的なコントロールのAttributesはviewstateで復元されるのに、ListItemのAttributesは復元されないとか、ユーザにとっては意味不明な挙動をしているようにしか思えない。