Проблема при настройке фокуса на валидацию основного контроля после валидации - PullRequest
2 голосов
/ 28 октября 2009

У меня есть элемент управления validationsummary, который отображает сводку нескольких элементов управления, необходимых для проверки, и все они принадлежат группе проверки.

Моя кнопка отправки также имеет ту же группу проверки, поэтому она проверяет все после нажатия.

Проблема, с которой я сталкиваюсь, заключается в установке фокуса на элемент управления validationsummary после того, как проверка происходит при нажатии моей кнопки отправки. Основное внимание уделяется вершине моей веб-формы.

Мне нужно сфокусироваться на контрольном контроле. Как мне этого добиться?

К вашему сведению: SetFocusOnError = "true" не работает.

Спасибо за чтение.

Ответы [ 4 ]

2 голосов
/ 25 декабря 2009

Попробуйте это http://forums.asp.net/t/967952.aspx. Я не проверял это. Но последний ответ сказал, что это работает.

Кроме того, вы можете попробовать MaintainScrollPositionOnPostback="true", чтобы, по крайней мере, фокус был таким же, как и до отправки.

1 голос
/ 28 октября 2009

Markup:

<asp:Button ID="Button1" runat="server" CausesValidation="false" 
  Text="Button" OnClientClick="SummaryFocus();" />

Сценарий:

function SummaryFocus() {
    Page_ClientValidate();
    var i;
    for (i = 0; i < Page_ValidationSummaries.length; i++) 
    {
        if (!Page_ValidationSummaries[i].isvalid) 
        {                
            window.scrollTo(0, document.getElementById(Page_ValidationSummaries[i].id).offsetTop);
            break;
        }
    }
}
0 голосов
/ 25 декабря 2010

В отчет о проблеме Connect добавлено несколько советов: https://connect.microsoft.com/VisualStudio/feedback/details/342104/maintainscrollpositiononpostback-and-validationsummary (извините за вырезанный и вставленный URI, по какой-то причине я не могу добавить ссылку должным образом).

Это все немного хак, но это может вам помочь.

0 голосов
/ 29 октября 2009

Вы не можете. Если вы посмотрите на разметку итоговой проверки в браузере, то это всего лишь сообщения об ошибках для каждого валидатора, отправленного в его группу валидации. Вы не можете сосредоточиться на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...