Установка TabIndex в TextBox в динамически генерируемых элементах управления ASP.NET?

У меня есть CompositeControl, каждый из которых содержит текстовое поле (TextBoxA) и три кнопки (ButtonA, ButtonB и ButtonC). Моя страница генерирует n этих CompositeControl динамически в зависимости от состояния страницы.

Я установил для TabIndex TextBoxA положительное значение, которое увеличивается на 1 для каждого элемента управления во время метода OnPreRender этого элемента управления:

TextBoxA.TabIndex = customControlPosition;
ButtonA.TabIndex = -1;
ButtonB.TabIndex = -1;
ButtonC.TabIndex = -1;

Путем отладки я подтвердил, что customControlPosition правильно назначает положительные инкрементные значения (1, 2, 3, 4 и т. Д.) Свойству TabIndex.

Текущее поведение заключается в том, что каждое нажатие клавиши Tab перемещает курсор для выделения каждой из кнопок в CompositeControl (которые имеют TabIndex, равное -1, и не должны переходить на вкладку), прежде чем продолжить установку курсора в следующем Текстовое поле CompositeControl. Я хочу, чтобы клавиша Tab перемещала фокус напрямую с одного текстового поля на текстовое поле следующего CompositeControl.

Что-то мне не хватает, что позволило бы мне это сделать?


person Nick Orlando    schedule 19.03.2013    source источник


Ответы (2)


Я нашел проблему.

TextBox, который я использовал, представляет собой настраиваемый класс, который был оболочкой для asp: TextBox, и настраиваемый класс неправильно назначал значение TabIndex для asp: TextBox.

person Nick Orlando    schedule 19.03.2013

Попробуйте присвоить вашим кнопкам TabIndex из 32767 (максимально возможное). Чем выше число, тем позже в порядке табуляции располагается элемент управления.

Я могу предположить, что 32767 - это намного больше, чем количество элементов управления, которые вы когда-либо добавляете на страницу?

Видеть это:

Указатель вкладок

person Oliver    schedule 19.03.2013
comment
Я попытался назначить TabIndex 32767 для каждого из текстовых полей, а также пробовал уникальные значения (32700 + customControlPosition ), но имел такое же поведение. Клавиша Tab перемещается к кнопкам в каждом элементе управления вместо текстового поля следующего элемента управления. - person Nick Orlando; 19.03.2013
comment
В выводе HTML не отображалось значение tabindex, что привело меня к ответу. Спасибо! - person Nick Orlando; 19.03.2013