2011-01-31 19 views
5

をスロー:button.UniqueIDへのDefaultButtonを設定すると、私が解決しようとしている問題の例外

私はasp:Panelにいくつかのテキストボックスを持っています。ユーザーがこれらのボックスのいずれかからEnterをヒットした場合、フォームがbtnAddTagをクリックしたかのように送信します。 (カーソルがこれらのボックス内にない場合は、私は別のデフォルト送信ボタンを持っている。)

ASPX:

<asp:Panel id="thePanel" runat="server"> 
    <asp:Button ID="btnAddTag" Text="Add Tag" runat="server" /> 
</asp:Panel> 

VB:

tagPanel.DefaultButton = btnAddTag.UniqueID 

例外:

'tagPanel'のDefaultButtonは、 IButtonControlのコントロールのIDである必要があります。 である必要があります。

btnAddTag.UniqueIDの値がctl00$phMain$btnAddTagある(マスターページがあります、このセクションでは、phMainと呼ばれています)。

私はまたCType(tagPanel.FindControl("btnAddTag"), Button).UniqueIDを試しました。

+0

、私は外側の ''が足りなかったので、私は必要なのか分からなかった。ちょうど私が共有すると思った – jbutler483

答えて

3

が行います。ここ

tagPanel.DefaultButton = btnAddTag.ID 

詳細: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

+0

それは働いた!私はなぜ、どこにいてもUniqueIDが必要なように思えます。 – egrunin

+0

相対パスを使用する必要があります。意味、UniqueIDと同様の文字列を使用して、コンテナから子コントロールまでのパスを提供します。 これはQ/A投稿以外ではどこにも書かれていません。 http://connect.microsoft.com/VisualStudio/feedback/details/103530/defaultbutton-in-panel-for-wizard-errs –

0

は、あなたがコントロールのIDを設定する必要がないのUniqueID:私の状況で

tagPanel.DefaultButton = btnAddTag.ID

関連する問題