2015-04-27 27 views
0

我有一個RadGrid,它爲網格的每一行都有一個WebUserControl,以允許用戶編輯該行。當我單擊編輯按鈕來展開行時(這會在該行的網格內打開一個.ascx控件),它總是滾動到頁面的頂部。然後,用戶必須向下滾動才能找到他們選中的行,並將行擴展爲開始編輯該行。Telerik RadGrid在行選擇後保持滾動位置

我在加入RadGrid1.ClientSettings.AllowKeyboardNavigation = true;之前數據綁定網格有助於保持滾動位置的另一篇文章中找到。這種工作,你只需要向下滾動一下鼠標滾輪來找到要編輯的行;還不夠好。

我也有aspx頁面上設置MaintainScrollPositionOnPostback=「true"

我也對radgrid控件本身在客戶端設置SaveScrollPosition=「true"設置。

我想看到的是,當用戶點擊編輯給定的行的頁面不能移動。我想保持頁面上的滾動位置。

這可以完成嗎?如果是這樣,怎麼樣?

回答

0

我終於弄清楚爲什麼我的網格總是滾動到頂部。是我的錯。當控制傳遞迴父頁面時,我希望用戶看到來自WebUserControl的任何消息。 RadGrid1.ClientSettings.Scrolling.ScrollTop = 0;是問題。

我列出了下面的代碼:

private void DisplayMessage() 
    { 
     // Display any messages from RadGrid2 that occurred in WebUserControl 
     if (!string.IsNullOrEmpty(Convert.ToString(Session["LabelUpdated"]))) 
     { 
      lblUpdated.Text = Convert.ToString(Session["LabelUpdated"]); 
      Session["LabelUpdated"] = null; 
     } 

     RadGrid1.ClientSettings.Scrolling.ScrollTop = "0"; 
     lblUpdated.Focus(); 
    } 

我,因爲它改變了下面的是:

private void DisplayMessage() 
    { 
     // Display any messages from RadGrid2 that occurren in WebUserControl 
     if (!string.IsNullOrEmpty(Convert.ToString(Session["LabelUpdated"]))) 
     { 
      lblUpdated.Text = Convert.ToString(Session["LabelUpdated"]); 
      Session["LabelUpdated"] = null; 
      RadGrid1.ClientSettings.Scrolling.ScrollTop = "0"; 
      lblUpdated.Focus(); 
     } 
    } 

變更後的電網將只有當消息滾動到頂部來自WebUserControl。

相關問題