2010-02-24 4 views
0

У меня есть пользовательский элемент управления (контроль ошибок) на главной странице. по умолчанию пользовательский элемент управления скрыт (видимый false)сосредоточиться на пользовательском управлении в C#

при нажатии кнопки отправки Я показываю элемент управления ошибкой. Теперь в ответ назад я хочу сфокусироваться на этом элементе управления. Я пишу скрипт java в регистре Startup сценарий выглядит следующим образом:

На обратной стороне страницы отображается этот элемент управления, а затем возвращается в предыдущее положение прокрутки.

ответ

0

Настроена MaintainScrollPositionOnPostback к true в page directive в верхней части страницы главной страницы/или в <pages> element вашего web.config?

Вы также можете посмотреть на использовании Focus method элемента управления в обработчике обратной передачи

Изменить, чтобы уточнить:

Если какой-либо из них установлены на true, то это весьма вероятно, что они будут переопределять сценарий запуска, чтобы отправить страницу назад в начало страницы - попробовали ли вы установить значение false в директиве «Страница» или на объекте «Страница» в том же коде, который отображает контроль ошибок?

+0

Я попробовал, что он также работу – SaveMe

+0

доцент Привет Я зову followin метод на кнопку мыши событие еще не использование .., как и можно видеть, что я попробовал менеджер сценариев. setfocus также, но без передышки. public void SetFocus() { Page.MaintainScrollPositionOnPostBack = false; ScriptManager.RegisterStartupScript (Страница, Page.GetType(), "Scroll", "window.scrollTo (0, 0)", true); // ScriptManager1.SetFocus (ErrorControl1.FocusControl); } – SaveMe

0

Наконец-то я решил эту проблему. Ниже как я это делаю ...

я добавил текстовое поле шириной Нулевой% в том же, где мой пользовательский элемент управления (контроль ошибок помещается)

Теперь всякий раз, когда происходит ошибка ввода вызова следующие метод.

public void SetFocus() 
     { 
      ScriptManager3.SetFocus(txtFocus.ClientID); 
     } 

хотя контроль ошибок не сфокусирован в действительности, эта умная работа помогает мне достичь моей цели.

надеюсь, что это полезно для других

0
private void Control_GotFocus(object sender, EventArgs e) 
    { 
     Console.WriteLine("Control GotFocus : " + ((sender as Control).Name)); 
    } 
Смежные вопросы