在ASP.NET动态生成的控件中设置TextBox上的TabIndex?

时间:2013-03-19 12:31:06

标签: c# asp.net tabindex composite-controls

我有一个CompositeControl,每个都包含一个TextBox(TextBoxA)和三个按钮(ButtonAButtonBButtonC)。我的页面根据页面状态动态生成 n 这些CompositeControl。

我已将Tab {TextBoxA的TabIndex设置为一个正值,在该控件的OnPreRender方法中,每个控件的值增加1:

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

我通过调试验证customControlPosition正确地为TabIndex属性分配正值,增量值(1,2,3,4等)。

当前的行为是,每次按下Tab键都会移动光标以突出显示CompositeControl中的每个按钮(其TabIndex为-1,并且不应标记为),然后继续将光标放在下一个CompositeControl的TextBox中。 我想要做的是让Tab键将焦点直接从一个TextBox移动到下一个CompositeControl中的TextBox。

我有什么遗漏可以让我这样做吗?

2 个答案:

答案 0 :(得分:2)

我发现了这个问题。

我使用的TextBox是一个自定义类,它是asp:TextBox的包装器,并且自定义类没有正确地将TabIndex值分配给asp:TextBox。

答案 1 :(得分:1)

尝试给按钮TabIndex 32767(可能的最大值)。数字越大,控件在Tab键顺序中越晚。

我认为32767比你将添加到页面的控件数量高很多?

见:

Tab Index