TreeView - стиль выбранного узла не отображается для выбранного узла - PullRequest
3 голосов
/ 11 августа 2010

Мой код:

            <asp:TreeView ID="TreeViewCategories" runat="server" ExpandDepth="0" Style="min-height: 200px;
                max-height: 500px;" LineImagesFolder="~/TreeLineImages" NodeIndent="0" LeafNodeStyle-CssClass="LeafNodesStyle"
                CssClass="TreeView" NodeStyle-CssClass="NodeStyle" ParentNodeStyle-CssClass="ParentNodeStyle"
                RootNodeStyle-CssClass="RootNodeStyle" SelectedNodeStyle-CssClass="SelectedNodeStyle"
                LeafNodeStyle-Width="100%" NodeStyle-Width="100%" ParentNodeStyle-Width="100%"
                RootNodeStyle-Width="100%" Font-Size="12pt">
                <Nodes>
                    <asp:TreeNode Text="All Items" SelectAction="Expand" PopulateOnDemand="True" Value="All Items" />
                </Nodes>
            </asp:TreeView>

css

.TreeView  
{
    border-bottom:1px dotted #B2B2B2 !important;
}

.TreeView div
{
    margin-left:5px;
}

.TreeView table
{
    border-top:1px dotted #B2B2B2 !important;
}

.TreeView div table
{
    border-bottom:none !important;
    border-top:none !important;
}

.TreeView table td
{
    padding:2px 0;
}

.LeafNodesStyle 
{

}

.RootNodeStyle 
{

}

/* ALL ELEMENTS */

.NodeStyle 
{

}

.ParentNodeStyle 
{
    /*background:yellow;*/
}

.SelectedNodeStyle { font-weight: bold; color:#6799D1; display:block; padding:2px 0 2px 3px; }

, поэтому я вижу (с помощью firebug), что для моего выбранного узла отображается стиль "Посещенные", стиль узла, стиль листа, но не выбранный узелstyle: (

Как исправить этот HTML / CSS / ASP, чтобы сделать выделенный узел, например, жирным и синим?

Спасибо.

добавлено: добавление узлов, как здесь:

            foreach(c : Category in rootCategories)
            {
                mutable newNode : TreeNode = TreeNode(c.Title, c.Id);
                newNode.SelectAction = TreeNodeSelectAction.SelectExpand;
                newNode.NavigateUrl = "Items.aspx?catId=" + c.Id.ToString() + "&lvl=0";

решено с помощью ...

categoryId : string = Request.QueryString["catId"];
n : TreeNode = findNode(categoryId, TreeViewCategories.Nodes, lvl);
n.Selected = true;

Ответы [ 4 ]

2 голосов
/ 20 августа 2010

Атрибут SelectAction на asp: TreeNode is Expand изменить его на SelectExpand .

Это обеспечивает обратную передачу и перерисовывает элемент управления деревом, чтобы применить выбранный стиль узла, заданный в древовидном представлении

<asp:TreeView ID="TreeViewCategories" runat="server" ExpandDepth="0" Style="min-height: 200px;
        max-height: 500px;" LineImagesFolder="~/TreeLineImages" NodeIndent="0" LeafNodeStyle-CssClass="LeafNodesStyle"
        CssClass="TreeView" NodeStyle-CssClass="NodeStyle" ParentNodeStyle-CssClass="ParentNodeStyle"
        RootNodeStyle-CssClass="RootNodeStyle" SelectedNodeStyle-CssClass="SelectedNodeStyle"
        LeafNodeStyle-Width="100%" NodeStyle-Width="100%" ParentNodeStyle-Width="100%"
        RootNodeStyle-Width="100%" Font-Size="12pt">
        <Nodes>
            <asp:TreeNode Text="All Items" SelectAction="SelectExpand" Value="All Items">
                <asp:TreeNode Text="All Items" SelectAction="SelectExpand" Value="All Items" />
                <asp:TreeNode Text="All Items" SelectAction="SelectExpand" Value="All Items" />
                <asp:TreeNode Text="All Items" SelectAction="SelectExpand" Value="All Items" />
            </asp:TreeNode>
        </Nodes>
    </asp:TreeView>
1 голос
/ 16 ноября 2011

Я заметил, что <NodeStyle> атрибуты имеют приоритет над <SelectedNodeStyle> атрибутами.

Например, у меня было:

<NodeStyle Forecolor="Black"/><br> <SelectedStyle Forecolor="Blue"/><br> <Nodes><br> <asp:TreeNode Text="RootSub1" Value="1" Selected="true"/><br> <asp:TreeNode Text="RootSub2" Value="2" Selected="false"/><br> </Nodes>

Мои Rootsub1 и RootSub2 появились с черным передним цветом. Затем я удалил атрибут ForeColor="Black" из свойств NodeStyle, и в Viola произошла разница в стилях.

Мой совет: обойти этот недостаток, избегать дублирования атрибутов, я буду продолжать использовать этот метод, пока не найду лучшего решения, но пока что все в сети не справляются.

0 голосов
/ 13 декабря 2014

CSS:

    .SelectedNodeStyle {
    padding-left: 3px!important;
    padding-right: 3px!important;
    font-size: 110%;
    background: none !important;
}

asp.net:

<asp:TreeView runat="server" SelectedNodeStyle-CssClass="SelectedNodeStyle" ...
0 голосов
/ 18 августа 2010

В вашем CSS, замените

a.SelectedNodeStyle { background:#6799D1; color:#6799D1; display:block; padding:2px 0 2px 3px; }

с

.SelectedNodeStyle { font-weight: bold; color:#6799D1; display:block; padding:2px 0 2px 3px; }

А в вашем ASPX замените

SelectedNodeStyle-ForeColor="RoyalBlue"

с

SelectedNodeStyle-CssClass="SelectedNodeStyle"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...