ASP.NET sayfalarında kullanıcının, doldurduğu form bilgilerini kolay şekilde buton nesnesi ile sunucuya gönderebilmesi için <form> elementindeki defaultbutton özelliğine buton kontrolünün ID değerini atayabiliriz. Böylece kullanıcı butona tıklamadan klavyeden enter tuşuna bastığında formdaki bilgiler sunucuya gönderilir. Peki sayfamızda farklı formlar varsa(örneğin sayfanın sol kısmında login formu, sağ kısmında kullanıcı kayıt formu) kullanıcı o an hangi form üzerinde enter tuşuna basarsa içerisinde bulunduğu formun butonuna tıklanmasını nasıl sağlarız? Yine DefaultButton özelliğini kullanarak yapabiliriz ama <form> elementinin defaultbutton özelliği değil!
Bu tarz bir işlem için öncelikli olarak her iki formu da birer Panel kontrolü içerisine almamız gerekir. Panel kontrolünün de aslında DefaultButton adında bir özelliği vardır. Dolayısıyla her iki panelin kendi içlerinde yer alan ve submit işlemini yapacak butonun ID değerini Panel’in DefaultButton özelliğine atarsak formlar istediğimiz şekilde davranabilecektir. Eğer panellerin dışında başka bir formunuz daha varsa ve bu panellerin dışında enter tuşuna basıldığında bu formun içerisindeki bir butonun tetiklenmesini istiyorsanız yine <form> elementinin defaultbutton özelliğini kullanabilirsiniz. Aşağıdaki kod parçalarını bir sayfa üzerinde test ederseniz durum gayet açık şekilde anlaşılacaktır
Default.aspx
<form id="form1" runat="server" defaultbutton="button1">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="button1" runat="server" Text="Button-1" OnClick="btn_Click" />
<br />
<asp:Panel ID="panel1" runat="server" BackColor="LightGreen" DefaultButton="button2" Width="300">
<asp:TextBox ID="text1" runat="server"></asp:TextBox>
<asp:Button ID="button2" runat="server" Text="Button-2" OnClick="btn_Click" />
</asp:Panel>
<asp:Panel ID="panel2" runat="server" BackColor="LightBlue" DefaultButton="button3" Width="300">
<asp:TextBox ID="text2" runat="server"></asp:TextBox>
<asp:Button ID="button3" runat="server" Text="Button-3" OnClick="btn_Click" />
</asp:Panel>
</form>
Default.aspx.cs
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("Tıklanan buton: " + ((Button)sender).Text);
}
TeşekkürlerHocam
Çok faydalı bir bilgi , hep merak ediyordum ama araştırmamıştım. iyi denk geldi