表单元格ASP.Net中包含的两个控件的TabIndex
我有一个奇怪的问题,我被要求解决,但可惜我到目前为止画了一个空白。正如标题所示,我正在尝试获取两个文本框的选项卡顺序,以便一个接一个地跟随 其思想是(这是继承的代码,而不是我自己设计的代码),一个例程是构建一个表单元格的调用,插入两个文本框和一个链接。然后返回,并在表中的每一行生成该单元格的新副本 我尝试过为文本框设置TabIndex,发现当我使用tab时,我只能到达第一个框(txtPound),而不能到达第二个框(txtPence) 我无法确定问题是否是由于试图在TableCell中执行此操作,还是完全是其他原因造成的 希望这是明确的,但如果你需要任何进一步的信息,那么我会尽量提供它 我在下面的代码中包含了一个条带化版本,基本上它是以aspx的速度添加到一个表行中的 任何帮助都将不胜感激表单元格ASP.Net中包含的两个控件的TabIndex,asp.net,Asp.net,我有一个奇怪的问题,我被要求解决,但可惜我到目前为止画了一个空白。正如标题所示,我正在尝试获取两个文本框的选项卡顺序,以便一个接一个地跟随 其思想是(这是继承的代码,而不是我自己设计的代码),一个例程是构建一个表单元格的调用,插入两个文本框和一个链接。然后返回,并在表中的每一行生成该单元格的新副本 我尝试过为文本框设置TabIndex,发现当我使用tab时,我只能到达第一个框(txtPound),而不能到达第二个框(txtPence) 我无法确定问题是否是由于试图在TableCell中执行此操作
private TableCell EstimateInputs(Brief item)
{
TableCell td = new TableCell();
TextBox txtPounds = new TextBox();
string[] agencyCosts;
txtPounds.TabIndex = 1;
td.Controls.Add(txtPounds);
//td.Controls.Add(new LiteralControl("<span>.</span>"));
TextBox txtPence = new TextBox();
txtPence.MaxLength = 2;
txtPence.TabIndex = 2;
td.Controls.Add(txtPence);
td.Controls.Add(new LiteralControl("</p></fieldset>"));
}
专用TableCell估算输入(简要项)
{
TableCell td=新的TableCell();
TextBox txtbolds=新的TextBox();
字符串[]代理成本;
txtPounds.TabIndex=1;
td.Controls.Add(txt磅);
//td.Controls.Add(新的LiteralControl(“.”);
TextBox txtpense=新的TextBox();
txtPence.MaxLength=2;
txtPence.TabIndex=2;
td.Controls.Add(txtpense);
添加(新的LiteralControl(“”);
}
所以这完全是一个骗局。原来有一个小JavaScript函数应用于处理货币值的文本框。它停止除数字键以外的任何操作,这意味着它包括tab键
所以谜团就解开了——谢谢你的帮助。你在什么地方、什么时候以编程方式生成这些控件,以及你将这个TableCell添加到什么控件中?您是否在每次回发时都使用与以前相同的ID重新创建它们(我将至少为文本框分配一个ID)。我认为问题的根源在于您需要增加TabIndex,当前每个文本框的TabIndex都将为“1”或“2”。是否可以至少包含此代码所在的事件处理程序的标头?然后,至少我们可以知道是否有任何EventArgs可用于设置TabIndex值。控件的使用方式如下:tr.Cells.Add(EstimateInputs(item));。这是在一个循环中,所以可以存在多个这样的东西,所以我认为对于pseudocoder提到的重复出现的1/2问题,肯定有话要说。您是否尝试不从代码中定义TabIndex?就我记忆所及。如果未定义,Net将自动执行此操作。是的-此选项卡索引用于尝试解决此问题。就目前情况而言,如果没有标签索引,您永远无法进入第二个框,您也会遇到同样的问题。