2007 は時代遅れであることはわかっていますが、現時点では新しいコントロールに切り替えることができません。
内部関数が原因で、TreeView が IE8 で正しく表示されないことがわかりました。
RadTreeView.AlignImage=function(_4e){
_4e.align="absmiddle";
_4e.style.display="inline";
if(!document.all||window.opera){
if(_4e.nextSibling&&_4e.nextSibling.tagName=="SPAN"){
_4e.nextSibling.style.verticalAlign="middle";
}
if(_4e.nextSibling&&_4e.nextSibling.tagName=="INPUT"){
_4e.nextSibling.style.verticalAlign="middle";
}
修正は次のようになります。
RadTreeView.AlignImage=function(_4e){
_4e.align="middle";
_4e.style.display="inline";
if(!document.all||window.opera){
if(_4e.nextSibling&&_4e.nextSibling.tagName=="SPAN"){
_4e.nextSibling.style.verticalAlign="middle";
}
if(_4e.nextSibling&&_4e.nextSibling.tagName=="INPUT"){
_4e.nextSibling.style.verticalAlign="middle";
}
編集: .NET アセンブリでも absMiddle として使用されているようです。上記の関数は JavaScript 関数です。
しかし、コンパイルされたdllでこれを変更するにはどうすればよいですか? dllでそれを修正する方法はありますか?
コード リフレクションを使用する必要がありますか? または、AlignImage 関数をオーバーライドする回避策はありますか?
編集
迅速で汚い修正はcssを設定することです(Edit2:これによりツリービューが修正されますが、inputおよびimg html要素で他の問題が発生する可能性があります)
input
{
vertical-align: middle!important;
}
img
{
vertical-align: middle!important;
}