Yazılım
ASP.NET Enter Tuşu Problemi
22 Ağustos 2008
1 dk okuma
4243
6
ASP.NET ile uygulama gelistirirken sayfamız içerisinde birden fazla button varsa enter tusuna basınca alakası olmayan bir button`un eventi çalısır yada varsa sayfamızdaki validatorlar çalısır. Bunu çözmek için Javascript kullanabiliriz,
txtBox1.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById(`" + Button1.UniqueID + "`).click();return false;}} else {return true}; ");
Yukarıdaki javascript kısmen de olsa isimiz görse de bazı browserlar da sorun çıkarır. (Örnegin Firefox). Tabi bununda çözümü var. ASP.NET 2.0 ile birlikte formlarımıza ve panellerimize default button atayabiliyoruz. Panel içerisinde enter`a basıldıgında hangi buttonun click eventinin tetiklenecegini DefaultButton propertysinden belirleyebiliyoruz. Örnek kullanım asagıdaki gibidir;
txtBox1.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById(`" + Button1.UniqueID + "`).click();return false;}} else {return true}; ");
Yukarıdaki javascript kısmen de olsa isimiz görse de bazı browserlar da sorun çıkarır. (Örnegin Firefox). Tabi bununda çözümü var. ASP.NET 2.0 ile birlikte formlarımıza ve panellerimize default button atayabiliyoruz. Panel içerisinde enter`a basıldıgında hangi buttonun click eventinin tetiklenecegini DefaultButton propertysinden belirleyebiliyoruz. Örnek kullanım asagıdaki gibidir;
<form id="frm1" defaultbutton="Tikla1" runat="server">
<asp:textbox id="txt1" runat="server"/>
<asp:button id="Tikla1" text="Form`a Ait Buton" runat="server"/>
<asp:panel ID="Panel1" defaultbutton="tikla2" runat="server">
<asp:textbox id="txt2" runat="server"/>
<asp:button id="tikla2" text="Panel`e Ait Buton" runat="server"/>
</asp:panel>
</form>
Yorumlar (6)
Ü
ürfet dede
23 Ağu 2008 02:00
ya hocam süper bir makale bravo süper anlatım :)
S
sedat
17 Ağu 2009 19:38
Teşekkür ederim çok iyi bir ipucu
S
sumeyye
10 Haz 2010 21:20
eğer sayfamızda master page varsa 2. seçeneği kullanmak kullanış açısı bakımından zor olmazmı?js kullansak oda firefoxta çalışmıyor.orta yol nasıl bulunabilir.
İ
ihsan ay
05 Eyl 2011 20:03
çok teşekkürler. 2. seçenek işime yaradı.
M
mucahit
26 Eyl 2016 11:30
Çok işe yaradı. Teşekkürler Hocam...
Ş
şefik karakurt
01 Ağu 2017 17:49
hala çok işe yarıyor. yıllar geçmiş üstünden hala paylaşımdan faydalanabiliyoruz.