【问题标题】:Strange tab ordering when creating controls after postback回发后创建控件时出现奇怪的制表符顺序
【发布时间】:2010-06-18 00:30:22
【问题描述】:

我有一个按钮,可以在弹出窗口中打开一个面板,然后执行回发以从服务器检索数据并呈现一些控件。有些控件是文本框,有些是下拉列表,可以按任意顺序排列。通过文本框控件切换时一切正常。但是当从找到的第一个下拉控件中切换时,选项卡顺序“丢失”并且它再次从第一个控件开始切换。当我第二次选择相同的下拉列表时,它会正确地选择下一个控件。有人知道会发生什么吗?

Example:

TextBox1 (Tab -> focus set to 'TextBox2')
TextBox2 (Tab -> focus set to 'DropDown1')
DropDown1 (Tab -> focus goes back up to 'TextBox1' - wtf?)
TextBox3

更新:所有控件都设置了 TabIndex 属性。

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    如果您想保证制表符排序,您可以简单地在控件上设置TabIndex 属性。这是关于该主题的good article

    【讨论】:

    • 所有控件都设置了 TabIndex 属性。
    • 你能提供你的例子的渲染HTML吗?另外,您是否在任何这些控件上捕获任何事件?
    【解决方案2】:

    玩了几天后,我弄清楚了发生了什么。选项卡顺序不受弹出面板上的控件或动态创建控件的影响。我在后台有一棵树导致了问题,不确定从下拉列表中切换时它是如何获得焦点的,但确实如此。我使用 css (style="display: none") 隐藏了树,并且标签问题消失了。

    如果其他人在弹出面板中遇到奇怪的选项卡问题,请检查弹出窗口后面的元素,看看它们是否导致了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2020-03-10
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多