Microsoft ASP.NET AJAX Library を利用していてぶつかった問題を、またひとつ紹介する。
DOCTYPE 宣言がない、または、DOCTYPE が Transitional で宣言されている ASP.NET ページに CollapsiblePanelExtender による Panel コントロールの 展開/縮小を実装した場合、このページを Internet Explorer で表示すると正しく動作しないようだ。
具体的には、縮小時に、縮小のアニメーションは表示されうのだが、アニメーション 終了後、展開された外見に戻ってしまうのである。
私の手元の環境では、IE 6 でも IE 7 でも発生した。いっぽう、Firefox 2.0.2 および Opera 9 では特に不具合は発生しなかった。
この件は、オフィシャルサイトに明記されている(下記参照)。
http://ajax.asp.net/ajaxtoolkit/CollapsiblePanel/CollapsiblePanel.aspx
問題を再現するサンプルはこちら(もちろん、IE で見ないと不具合は再現しない)。
http://gentoo.dev-asp.net/samples/02CollapsiblePanelNeedDOCTYPE/
残念なことに、仕事上、Transitional にどうしても依存しているページレイアウトがあり、そのページでこの問題に遭遇してしまった。
致し方ないので、JavaScript コードを手組みで実装して回避した。とはいえ、もちろん、せっかくなので Microsoft AJAX Library のクライアント側ライブラリを利用しての実装ではある。