2015-04-27 5 views
0

У меня есть RadGrid, у которого есть WebUserControl для каждой строки сетки, чтобы позволить пользователю отредактировать эту строку. Когда я нажимаю кнопку редактирования, чтобы развернуть строку (это открывает элемент управления .ascx в сетке для этой строки), он всегда прокручивается до верхней части страницы. Затем пользователь должен прокрутить вниз, чтобы найти строку, которую они выбрали, с расширенной строкой, чтобы начать редактирование этой строки.Telerik RadGrid поддерживает положение прокрутки после выбора строки

Я нашел в другом сообщении, что добавление RadGrid1.ClientSettings.AllowKeyboardNavigation = true; до привязки данных к сетке помогает поддерживать положение прокрутки. Такие работы, и вам нужно только прокрутить один щелчок колеса мыши, чтобы найти строку для редактирования; не достаточно хорош.

Я также установил MaintainScrollPositionOnPostback=“true" на странице aspx.

Я также установил на 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.