ASP.NET: Corrigindo a exibição de linhas da Treeview no IE 7
O ASP.NET 2.0 nos trouxe a Treeview, que ligada ao siteMap, é um poderoso objeto de navegação no site.
Porém, entre as opções de design da treeview existe um pequeno problema : Se habilitarmos a opção show lines o IE 7 exibe as linhas da treeview de forma errada, quebrando as linhas e causando cortes indesejáveis.
Isso ocorre devido as inúmeras mudanças que o IE 7 fez na forma de processamento do HTML e CSS justamente para se tornar mais aderente aos padrões do W3C.
Porém, se design é o problema, design é a solução. Utilizando CSS podemos corrigir o problema, veja :
<style>
.tree td div {
height : 20px !important
}
</style>
As DIVs geradas pela renderização da treeview tem apenas 1px de altura. Isso funciona bem no IE 6 e outros browser mas não funciona bem para o IE 7. Então com essa alteração de estilo o problema é resolvido.
Porém observem uma questão interessante : Normalmente a altura definida diretamente na tag da DIV iria sobrepor a altura definida no estilo. Mas neste caso utilizamos a palavra chave !important do CSS. Essa palavra chave faz com que a definição de estilo que estamos fazendo se sobreponha as definições específicas existentes na DIV.
Feito o estilo, basta aplica-lo na treeview (propriedade CSSCLASS) e as linhas passarão a funcionar no IE 7.