древовидная иерархия не работает должным образом в боковой панели обновления - PullRequest
0 голосов
/ 27 июня 2011

Я использую древовидную иерархию внутри UpdatePanel. Код ASP.NET:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:TreeView ID="HierarchyTreeView" runat="server" meta:resourcekey="HierarchyTreeViewResource1" EnableViewState="true"></asp:TreeView>
    </ContentTemplate>
</asp:UpdatePanel>

и за кодом я пишу

protected override void OnInit(EventArgs e)
{
        base.OnInit(e);
        HierarchyTreeView.PathSeparator = CaseListPresenter.PathSeparator;
        HierarchyTreeView.TreeNodePopulate += new TreeNodeEventHandler(HierarchyTreeView_TreeNodePopulate);
        HierarchyTreeView.SelectedNodeChanged += delegate {
            Presenter.CancelChangeFlag(); 
            Presenter.SelectedNodeChanged(); 
            CheckPreview(); 
        };
}

Если я использую TreeView за пределами UpdatePanel, мой OnInit работает хорошо. Но если я использую TreeView внутри UpdatePanel, он не работает должным образом. Я хочу сохранить позицию прокрутки моего дерева

Ответы [ 2 ]

0 голосов
/ 28 июня 2011
0 голосов
/ 28 июня 2011

TreeView не полностью поддерживает панель обновлений.

мы можем поддерживать позицию прокрутки, используя следующий скрипт:

<script language="javascript" type="text/javascript">
         var IsPostBack = '<%=IsPostBack.ToString() %>';
         window.onload = function() {
             var strCook = document.cookie;
             if (strCook.indexOf("!~") != 0) {
                 var intS = strCook.indexOf("!~");
                 var intE = strCook.indexOf("~!");
                 var strPos = strCook.substring(intS + 2, intE);
                 if (IsPostBack == 'True') {
                     document.getElementById("<%=Panel4.ClientID %>").scrollTop = strPos;
                 }
                 else {
                     document.cookie = "yPos=!~0~!";
                 }
             }
         }
         function SetDivPosition() {
             var intY = document.getElementById("<%=Panel4.ClientID %>").scrollTop;
             document.title = intY;
             document.cookie = "yPos=!~" + intY + "~!";
         }  

</script>

вызов setDivPosition() для вашего Panel4

...