我知道 - 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:这修复了树视图 - 但可能会导致输入和 img html 元素出现其他问题)
input
{
vertical-align: middle!important;
}
img
{
vertical-align: middle!important;
}