Tuesday, October 09, 2007

Asp.Net DefaultButton DefaultFocus

bunlar çoğu zaman gereken hareketlerdir. bir site yüklendiğinde hemen bişeyler yazıp aramaya izin vermesi isteniyorsa. ilk adım yazı yazılacak textbox ın focus edilmesi gerekir. ikinci adımda burdan entera basınca form'un submit olması istenir. veya o sayfada herhangi bir buttona basılmış olması istenir. bu gibi hallerde yazılabilecek güzel bir kod parçacığı verelim:
Page.Form.DefaultFocus = txtSearchTerm.ClientID;
Page.Form.DefaultButton = LinkButton1.UniqueID;


ee hajı mascix biz bunu biliyorduk ne zikime yazıon bunu diyenler yazının devamını okusun.

konusu geçen propertyler masterpage ve usercontrollerden oluşan komplex bir sitede geçiyor. bu propertylerden önce masterpage e direk defaultfocus vermeyi denedim ama arkadaş onu yemedi sanırım bu usercontroldeki textbox ın idsini yakalayamadığı içindir. sonra bir ara enter tuşuyla default basılması istenen button kodunu bulmuşdum.
txtSearchTerm.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) __doPostBack('" + LinkButton1.UniqueID + "','')");

ve denemişdim güzel çalışıyordu fakat sonradan en yukardaki iki satırı bulunca ulan dedim bu javascriptli kod boka benzio öteki pek bi temiz bunu silemde kullanmayam dedim ve sildim sonra IE de mis gibi çalışan bu DefaultButton özelliğinin firefox da iplenmediğini fark ettim :) evet görüldüğü üzere .net de herşeyi bilmek yetmiomuş bazen okumaya devam etmek gerekiomuş. bende kodumu şu şekilde değiştirdim.
txtSearchTerm.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) __doPostBack('" + LinkButton1.UniqueID + "','')");
Page.Form.DefaultFocus = txtSearchTerm.ClientID;
//note:bu yöntem firefox da çalışmadı :)
//Page.Form.DefaultButton = LinkButton1.UniqueID;

No comments:

sony xperia 10 VI did not like the case

After iphone 16 I wanted to test an android and looks like sony xperia 10 VI is nice, which is 6.1 inches, but it was narrow and longer than...