垂直然后水平设置动态表中的tabindex

时间:2010-05-07 12:40:23

标签: c# asp.net

我有一个页面,当前正在以表格格式生成动态创建的文本框。用户请求将标签顺序从水平垂直更改为垂直水平。我知道你可以使用tabindex属性来控制标签排序,但我不能为我的生活找到正确的方法来正确获取文本框的顺序号。我想这更像是一个数学问题而不是其他任何东西!

仅供参考,文本框是在循环两个不同的集合时制作的。循环第一个集合,为每行创建第二个集合(这是第一个集合对象的属性)的行,以循环创建列。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:4)

您需要使用三个变量来实现此目的:

  • 总行数
  • 当前行索引
  • 当前列索引

然后,您可以通过将tabindex设置为:

来实现垂直制表顺序
totalRowCount * currentColumnIndex + currentRowIndex + 1

对于五行三列表,上面的计算会将Tab键顺序呈现为:

1   5   10
2   6   11
3   7   12
4   8   13 
5   9   14

更新: Wil,谢谢你指出了这一点。我已经更新了这个例子。我还检查了W3C spec(我可能应该先做),这澄清了行为:

  

不支持的元素   tabindex属性或支持它和   为其分配值为“0”的导航   下一个。导航这些元素   它们出现在角色中的顺序   流。