For a common aspx page, we can easily set defaultbutton and defaultfocus for it, as shown below:
. Aspx:
<Form id = "form1" runat = "server">
<Div>
<Asp: TextBox ID = "TextBox1" runat = "server"> </asp: TextBox>
<Asp: Button ID = "Button1" Text = "Button1" runat = "server" OnClick = "button#click"> </asp: Button>
<Asp: Button ID = "SubmitButton" Text = "Submit" runat = "server" OnClick = "SubmitButton_Click"> </asp: Button>
</Div>
</Form>
. Cs:
Protected void Page_Load (object sender, EventArgs e)
{
This. Form. DefaultButton = SubmitButton. ID;
This. Form. DefaultFocus = TextBox1.ID;
}
However, if our page is inherited from a masterpage, such:
. Aspx:
<Asp: Content ID = "Content1" ContentPlaceHolderID = "ContentPlaceHolder1" runat = "Server">
<Asp: TextBox ID = "TextBox1" runat = "server"> </asp: TextBox>
<Asp: Button ID = "Button1" Text = "Button1" runat = "server" OnClick = "button#click"> </asp: Button>
<Asp: Button ID = "SubmitButton" Text = "Submit" runat = "server" OnClick = "SubmitButton_Click"> </asp: Button>
</Asp: Content>
. Cs:
Protected void Page_Load (object sender, EventArgs e)
{
This. Form. DefaultButton = SubmitButton. ID;
This. Form. DefaultFocus = TextBox1.ClientID;
}
"The DefaultButton of 'form1 'must be the ID of a control of type IButtonControl."Exception; solution: on this page, use a panel control to package textbox and button, for example:
. Aspx:
<Asp: Content ID = "Content1" ContentPlaceHolderID = "ContentPlaceHolder1" runat = "Server">
<Asp: panel id = "panel" runat = "server">
<Asp: TextBox ID = "TextBox1" runat = "server"> </asp: TextBox>
<Asp: Button ID = "Button1" Text = "Button1" runat = "server" OnClick = "button#click"> </asp: Button>
<Asp: Button ID = "SubmitButton" Text = "Submit" runat = "server" OnClick = "SubmitButton_Click"> </asp: Button>
</Asp: panel>
</Asp: Content>
. Cs:
Protected void Page_Load (object sender, EventArgs e)
{
Panel. DefaultButton = SubmitButton. ID;
This. Form. DefaultFocus = TextBox1.ClientID;
}