2017-06-12 8 views
1

私は自分の問題に対して数多くのアプローチを試みましたが、どれもうまくいかないようです。私は基本的にasp.netハイパーリンクを使用してユーザーをアクティブ化および非アクティブ化します。問題はすぐにページをスクロールしてポストバックを作成するので、リストがあればスクロールバックするのは面倒です1000人のユーザーここでは、成功なしで試していたコードがあります!私の理解あたりとしてハイパーリンクポストバック後にスクロール位置を維持する

  // I use this variable for navigating the url for my hyperlink 
      var toggleUrl = "AdminListUsers.aspx?column=" + (IsClicked.FirstOrDefault().Key ?? "Name") + "&direc=" + (IsClicked.FirstOrDefault().Value) + "&a=chstat&q=" + id.ToString() + "&d=" + disabled + "&z=" + Server.UrlEncode(txtSearchFor.Text); 

      var hl = new HyperLink(); //These hyperlinks are the same 
      hl.Text = status; 
      hl.Style.Add(HtmlTextWriterStyle.Color, (disabled ? "red" : "green")); 
      hl.NavigateUrl = toggleUrl; 
      hl.Attributes.Add("onclick", "saveScroll(this);return true;"); 
      cell.Controls.Add(hl); 
      tr.Cells.Add(cell); 

      cell = new TableCell(); 
      cell.Width = new Unit("10%"); 

      cell.Controls.Add(new LiteralControl("<nobr>")); 

      var linkbtn = new HyperLink //These hyperlinks are the same 
      { 
       //Here as you can see are my attributes for the hyperlink 
       NavigateUrl = toggleUrl, 
       Width = 16, 
       Height = 16, 
       CssClass = disabled ? "user-status-disabled" : "user-status-enabled" 
      }; 
      linkbtn.Attributes.Add("id", "aButton_" + id); 

      ScriptManager.RegisterStartupScript(Page, typeof(Page), "ScrollToADiv", "setTimeout(scrollToDiv, 1);", true); // Not working 
      linkbtn.Attributes.Add("onclick", "window.scrollTo(0, location.hash);"); // Not working either 

      cell.Controls.Add(linkbtn); 
      cell.Controls.Add(new LiteralControl("&nbsp; ")); 
+0

上のスクロール位置を設定しますPS **あなたはどのように**活動化**ユーザーを無効にする**どのようなコントロールを使用し、どのようにポストバックが実行されます。これは** 2017 **のアドバイスですので、** AJAX ** Get/Postを使用してサーバーからデータをフェッチ/送信することをお勧めします。これにより、不要なポストバックや単純な操作の遅延を回避できます。 – Prabhat

+0

それは古いコードなので、たくさんあるので、プロジェクト全体を再構成する時間がありません。 – andrekordasti

答えて

0

、あなたは以下の3つの方法のいずれかでtrueにMaintainScrollPositionOnPostbackを設定することができます。

  1. のWeb.configレベル=>pages maintainScrollPositionOnPostBack="true" />
  2. ページレベル=><%@ Page MaintainScrollPositionOnPostback="true" %>
  3. コードレベル=>Page.MaintainScrollPositionOnPostBack = true;

・ホープ、このことができます!

EDIT以下のコメント(jQueryのを使用していると仮定した場合)のための コードのヘルプ:

$(".user-status-enabled").on("click", function() { 
    var $this = $(this); 
    var scrollPosition = $this.scrollTop(); 
    $this.attr("href", $this.attr("href") + "&scrollPosition=" + scrollPosition); 
}); 

とターゲット画面上で、クエリ文字列からこのscrollPositionにアクセスし、DOM準備

+0

ええ、私もそのアプローチを試してみました。どちらもうまくいきません。 – andrekordasti

+0

リンクボタンをクリックすると別のページに移動しているように見え、この現在のページでスクリプトをスクロールするためのスクロールを登録しています。 – Praveen

+0

はい、どうすれば解決できますか? – andrekordasti

関連する問題