Bir Sayfada Birden Fazla DefaultButton Kullanımı

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);

}

 

8 Mayıs 2009 Cuma 00:19

Yorum - RSSYorumlar (0)

Etiket:
Kategori: ASP.NET

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

Yorum ekle


 

biuquote
  • Yorum
  • Canlı önizleme
Loading




Bağlantılar



Takip Et

RSS Feed twitter friendfeed

Seminer/Webiner Programım

  • Seminer-WebinerASP.NET 4.0 WebForms Yenilikleri (Microsoft İstanbul Ofisi)
    29 Mayıs 2010

  • Seminer-WebinerVisual Studio 2010 Yenilikleri (Osmangazi Üniversitesi)
    15 Mayıs 2010

  • Seminer-WebinerASP.NET AJAX ile Zengin Internet Uygulamaları Geliştirme (Microsoft İstanbul Ofisi)
    3 Mayıs 2010

>> Etkinlik Takvimi