我有一个按钮,可以在弹出窗口中打开一个面板,然后执行回发以从服务器检索数据并呈现一些控件。一些控件是文本框,一些是下拉列表,可以按任何顺序排列。通过文本框控件进行选项卡时,一切正常。但是,当从第一个下拉控件中找到标签时,标签顺序“丢失”并再次从第一个控件开始标签。当我第二次选中相同的下拉列表时,它会正确地标记到下一个控件。有谁知道可能会发生什么?
Example: TextBox1 (Tab -> focus set to 'TextBox2') TextBox2 (Tab -> focus set to 'DropDown1') DropDown1 (Tab -> focus goes back up to 'TextBox1' - wtf?) TextBox3
更新:TabIndex属性在所有控件上设置。
答案 0 :(得分:1)
如果您想保证标签排序,只需在控件上设置TabIndex
属性即可。这是关于该主题的good article。
答案 1 :(得分:0)
经过几天的游戏,我发现了发生的事情。选项卡排序不受弹出式面板上的控件或动态创建控件的影响。我在背景中有一棵树导致了这个问题,不知道从下拉列表中进行选项时它是如何获得焦点的,但事实确实如此。我使用css (style="display: none")
隐藏了树,并且标签问题消失了。
其他任何人在弹出式面板中遇到奇怪的标签问题,请检查弹出窗口后面的元素,看看是否会导致问题。