Använd DefaultButton för att lösa problemet med submit-knappen i .NET
Om du använder dig av flera formulär på en ASP.NET-sida så har du troligtvis stött på problemet med att submit-knappen för ett formulär alltid triggar submit-knappen för standardformuläret på sidan. Det vill säga, fel formulär skickas när du klickar på en submit-knapp.
Det finns en lösning för detta: att använda DefaultButton tillsammans med en Panel som formuläret ligger i. Så här:
<asp:Panel ID="pnlLogin" DefaultButton="btnLogin" runat="server">
<fieldset>
<asp:TextBox ID="tbUsername" runat="server" />
<asp:TextBox ID="tbPassword" TextMode="Password" runat="server" />
<asp:Button ID="btnLogin" OnClick="btnLogin_Click" Text="Logga in" runat="server" />
</fieldset>
</asp:Panel>
Det du gör är alltså att sätta DefaultButton till namnet på submit-knappen i formuläret som ska skickas. I ovanstående fall blir DefaultButton btnLogin.
DefaultButton kan specifieras på form och Panel i .NET.
Fotnot: En Panel-kontroll i .NET renderar en extra <div> i HTML-källkoden. Det är inte snyggt, men hellre det än att ha ett formulär som inte fungerar som det ska.