1

私はasp.nettreeViewを持っています。拡張されたノードで、拡張されたノードの子ノードをバインドしています。しかし、ノードをチェックして展開すると、ノードとそのすべての子がその位置を変更し、メインノードの子のようになります。+をもう一度クリックすると、適切な場所に移動します。それを解決する方法についてのアイデア!!!

これがupdatePanelのツリーです

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <asp:TreeView ID="MyTreeView" runat="server" ImageSet="XPFileExplorer" NodeIndent="15"
    OnTreeNodeExpanded="MyTreeView_TreeNodeExpanded">
    <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
    <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px"
        NodeSpacing="0px" VerticalPadding="2px" />
    <ParentNodeStyle Font-Bold="False" />
    <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
        VerticalPadding="0px" />
</asp:TreeView>

        </ContentTemplate>
</asp:UpdatePanel>

背後のコードから:ページの読み込み時に私は持っています:

if (!this.IsPostBack)
            {
                this.MyTreeView.ShowCheckBoxes = TreeNodeTypes.All;
                this.MyTreeView.ShowLines = true;
                FillTree();//custom method just to fill the tree
            }

    protected void MyTreeView_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
        TreeNode expandedNode = e.Node;

        if (expandedNode.Value != "-1" && expandedNode.Value == "-2")
        {
            //Some logic
        }

    }

前もって感謝します

4

1 に答える 1

0

このJavaScript関数はツリーを修正します:

function FixTreeview(treeView) {
            try {
                if (treeView) {
                    var treeLinks = treeView.getElementsByTagName("a");
                    var nodeCount = treeLinks.length;
                    for (i = 0; i < nodeCount; i++) {
                        if (treeLinks[i].firstChild.tagName) {
                            if (treeLinks[i].firstChild.tagName.toLowerCase() == "img") {
                                var currentToggleLink = treeLinks[i];
                                var childContainer = GetParentByTagName("table", currentToggleLink).nextSibling;
                                try {
                                    eval(currentToggleLink.href);
                                } catch (e) {
                                }
                            }
                        }
                    } 
                }
            } catch (e) {
            }
        }
于 2012-12-05T09:15:20.990 に答える