Я знаю, что 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";
}
Редактировать: Кажется, что оно также используется в качестве absMiddle в сборке .NET.Вышеуказанные функции являются функциями javascript.
Но как я могу изменить это в скомпилированной dll?Есть ли способ исправить это в DLL?
Нужно ли использовать отражение кода?Или есть ли обходной путь для отмены функции AlignImage?
Редактировать
Быстрое и грязное исправление - установка CSS (Редактирование 2: это исправлениедревовидная структура - но может вызвать другие проблемы с элементами input и img html)
input
{
vertical-align: middle!important;
}
img
{
vertical-align: middle!important;
}