在ASPX内容中设置defaultbutton时如何避免InvalidOperationException

时间:2010-07-22 20:21:53

标签: asp.net defaultbutton master-pages

我正在尝试在ASPX页面中设置默认按钮。我有一个母版页,所以表格就在那里。我在内容页面中有一个面板,其中包含一个表,用于组织许多文本框,下拉列表和其他输入。该表的最后一行包含一些按钮,其中一个我想成为默认按钮。在做了一些研究后,我尝试了以下但没有成功。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
       pnlHolder.DefaultButton = cmdSearchJob.ClientID

我也试过

pnlHolder.DefaultButton = cmdSearchJob.UniqueID

Dim cmdDef As Button = pnlHolder.FindControl("cmdSearchJob")
pnlHolder.DefaultButton = cmdDef.UniqueID

但都抛出异常“'pnlHolder'的DefaultButton必须是IButtonControl类型的控件的ID。”

我见过一些Javascript解决方案,但希望能够为面板设置defaultButton。

4 个答案:

答案 0 :(得分:2)

尝试设置父表单的DefaultButton

C#:

 this.Page.Form.DefaultButton = cmdSearchJob.UniqueID;

VB:

me.Page.Form.DefaultButton = cmdSearchJob.UniqueID

此处类似的问题:Allow Enter key to login in asp.net?

答案 1 :(得分:0)

尝试将其设置为:

cmdSearchJob.ID

面板将调用FindControl以获取客户端ID

答案 2 :(得分:0)

你能在前端的控件内设置吗?

<asp:Panel id="pnlHolder" DefaultButton="cmdSearchJob">
<asp:Button id="cmdSearchJob" runat="server" Text="Search" />
</asp:Panel>

另外,这可能值得了解,cmdSearchJob是什么类型的对象?它是标准的asp.net按钮控件吗?

答案 3 :(得分:0)