2010-11-30 24 views
0

Le display est horrible; il y a des espaces entre les lignes. J'utilise un asp:treeview dans ma page Web. L'apparence est configuré avec skin.The TreeViewSkin est écrit en SkinFile.skin disponible sous App_Themes:Comment configurer l'espacement vertical pour l'arborescence ASP .Net avec la case à cocher

<asp:TreeView SkinID="TreeViewSkin" runat="server" ShowLines="true" ShowCheckBoxes="All" Style="margin-top:10px;"> 
    <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" /> 
    <NodeStyle Font-Names="Verdana" Font-Size="8pt" HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /> 
    <ParentNodeStyle Font-Bold="False" /> 
    <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px" VerticalPadding="0px" /> 
</asp:TreeView> 

Pour plus d'informations données de liaison se fait par BuildTreeview méthode:

public static void BuildTreeView<T>(this IEnumerable<HierarchyNode<T>> hierarchy, TreeView treeView, string idName, string libName) where T : class 
{ 
    TreeNode treeNode = null; 
    var treeview = typeof(T); 
    foreach (var obj in hierarchy) 
    { 
     var nameProperty = obj.GetType().GetProperty("Entity"); 
     if (nameProperty == null) continue; 
     var value = (T)nameProperty.GetValue(obj, null); 
     var property = treeview.GetProperty(idName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); 
     var curElementIdValue = Convert.ToInt32(property.GetValue(value, null)); 

     var labelProperty = treeview.GetProperty(libName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); 
     var labelValue = (string)labelProperty.GetValue(value, null); 

     if (value != null) treeNode = new TreeNode() {Text = labelValue, Value = curElementIdValue.ToString()}; 

     var childNodes = obj.GetType().GetProperty("ChildNodes"); 
     if (childNodes != null) { 
      var propValue = childNodes.GetValue(obj, null); 
      BuildTreeNode<T>(propValue as IEnumerable, treeNode, idName, libName); 
     } 
     if (treeNode != null) treeView.Nodes.Add(treeNode); 
    } 
} 

Je ne suis pas propriétaire du code; J'avoue que le code de la méthode est un peu obscur ... Est-ce mal de montrer la case à cocher? Je peux reproduire partiellement avec Chrome avec ce sample mais pas dans IE7. Je suis déçu;)

Répondre

0

que j'ai trouvé une solution de contournement sur blogs.msdn.com

The {DIV} tag generated height is only 1px instead of 20px.