2013-03-19 84 views
0

我有一個CompositeControl每個包含一個文本框(TextBoxA)和三個按鈕(ButtonA,ButtonBButtonC)。我的頁面根據頁面的狀態動態生成這些CompositeControls的n在ASP.NET中設置TextBox中的TabIndex動態生成控件?

我已經設置的TextBoxA所述的TabIndex由1對每個控制該控制的方法的OnPreRender期間增加的正值:

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

我已經通過調試驗證了customControlPosition被正確分配正,增量值(1,2,3,4等)到TabIndex屬性。

當前的行爲是每按一次Tab鍵移動光標以突出顯示CompositeControl中的每個按鈕(其TabIndex爲-1,並且不應被選中),然後繼續放置光標在下一個CompositeControl的TextBox中。 我想要做的是讓Tab鍵將焦點直接從一個文本框移動到下一個CompositeControl中的文本框。

有什麼我失蹤,會讓我做到這一點?

回答

2

我發現這個問題。

我使用的TextBox是一個自定義類,它是asp:TextBox的包裝,而自定義類沒有正確地將TabIndex值分配給asp:TextBox。

1

嘗試給你的按鈕TabIndex 32767(儘可能最大)。數字越高,控件的後面按Tab鍵順序排列。

我會想象一下32767比你添加到頁面的控件數量要多很多嗎?

看到這個:

Tab Index

+0

我試着爲每個文本框分配32767的TabIndex,並且還嘗試了'(32700 + customControlPosition)'的唯一值,但它們具有相同的行爲。 Tab鍵移動到每個控件中的按鈕而不是下一個控件的TextBox。 – 2013-03-19 13:53:31

+0

您是否嘗試過查看HTML輸出? – Oliver 2013-03-19 14:04:18

+0

HTML輸出沒有顯示tabindex值,這導致我[答案](http://stackoverflow.com/a/15503840/745511)。謝謝! – 2013-03-19 15:37:44