2

ポストバック後に ASP.Net TreeView の選択したノードをスクロールして表示する方法はありますか?

私の特定のシナリオでは、ポストバックごとにコントロールが再設定されます。

ありがとう!

4

5 に答える 5

4

私はそれを考え出した。TreeViewコントロールは、クライアント上にjavascriptオブジェクトを作成します。ツリービューと呼ばれる名前に「_Data」が追加された名前が付けられます。オブジェクトを使用すると、選択したノードへの参照を取得できます。

以下のコードは、ASP.NetAjax拡張機能を使用しています。TreeViewの名前を自分の名前に変更することを忘れないでください。

var name = myTreeView_Data.selectedNodeID.value;
var selectedNode = $get(name);

if(selectedNode)
{ 
selectedNode.scrollIntoView(true);
}
于 2009-02-23T12:42:56.920 に答える
2

これは、特定のツリーノードをクリックしてページの関心のあるタイトルまでスクロールするだけのツリービューのソリューションです(リダイレクトではありません)。これには、単純なHTMLコードがあり、それが何であるかがわかります...

<html>

<body>

  <div id="sidebar">
        <ul>
           <li><a href="#contacts" >Contact</a></li>

                /***here is the link*****/`
        </ul>
   </div>

<div style="height: 250px;" id="contacts">

            /*here your content*/

       </div>

</body>

</html>

于 2012-12-05T07:26:57.493 に答える
1

私はポールのアプローチを使用しましたが、うまくいきました。私はTreeView、ユーザーコントロール内の更新パネルに、それぞれの間に再構築されるPreRender. TreeViewビルドし たらすぐに、次を実行します。

if (Page.IsPostBack)
        {
            string s2 = @"var elem = document.getElementById('{0}_SelectedNode');
                          if(elem != null )
                          {
                                var node = document.getElementById(elem.value);
                                if(node != null)
                                {
                                     node.scrollIntoView(true);
                                }
                          }
                        ";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", s2.Replace("{0}", tvOrgChart.ClientID), true);
        }

クレジットはポール・キンメルに行きます

于 2012-05-29T19:25:42.043 に答える
0

次のコードを使用することもできます。

        var elem = document.getElementById('TreeView1_SelectedNode');   
        if(elem != null )   
        {     
            var node = document.getElementById(elem.value);     
            if(node != null)     
            {       
                node.scrollIntoView(true);       
            }   
        } 

クレジットはポール・キンメルに行きます

于 2009-04-22T08:49:01.160 に答える