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-WebinerADO.NET Entity Framework (Yıldız Teknik Üniversitesi)
    6 Mart 2010

  • Seminer-WebinerASP.NET 4.0 ile Gelen Yeni Özellikleri Yakından Tanıyın (Microsoft)
    18 Şubat 2010

  • Seminer-WebinerC# 4.0 ve Visual Basic 10 ile Uygulama Geliştirmenin Püf Noktaları (Microsoft)
    28 Ocak 2010

>> Etkinlik Takvimi