Html form button elemanını code behind sayfasında çağırmak
Aklınıza <asp:button> elemanı varken bunu neden yapayım diye bir soru gelebilir. Ancak durum hiçte göründüğü gibi değil bir örnek vermek gerekirse. Diyelim ki bir formunuz var ve bu formdaki alanların kontrolünü veya doğrulamasını Html5 validation özelliklerini kullanarak yaptınız. Fakat sayfanıza iki veya daha fazla butonlarınız var. Birinci buton formu post etsede ikinci buton farklı bir işlev yapıyor olacak. İkinci butona tıkladığınızda sizden validation kontrollerini doğrulamanız istenecek fakat siz bu butonlar başka bir olay yapıyordunuz. İlk çözüm butona formnovalidation eklemek olacaktır. Bu sayede bu buton bağımsız olarak çağrılmış olacak. Sayfayı chrome ve firefox'ta açtınız. Herşey yolunda fakat bir de IE'de açın. O da ne ? Çalışmıyor mu ? Merak etmeyin bununda çözümü var. İsterseniz çözümü bu http://msdn.microsoft.com/en-us/library/ie/hh772935(v=vs.85).aspx bağlatıdan detaylı olarak inceleyebilirsiniz. IE 'de <asp:button> elamanına verilen bu özellik desteklenmiyor. Html form elemanı olan bir elemana verildiğinde ise tıkır tıkır çalışıyor. Önce html butonumuza formnovalidate özeliği atıyoruz daha sonra onclick="__doPostBack('btnSubmit', 'Giris');" özelliğini atıyoruzki post olduğunda code behinde sayfasından çağrılabilsin.
Code behind sayfamızda reques form diyerek butonumuzu çağırdıktan sonra çalışmasını istediğimiz metod veya fonksiyonu çağırıyoruz.
Hmtl :
<input id="Submit1" type="submit" value="submit" formnovalidate name="save" runat="server" onclick="__doPostBack('btnSubmit', 'Giris');"/>
Code behind :
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (Convert.ToString(Request.Form["__EVENTARGUMENT"]) == "Giris")
{
Face_log();//submit action here
}
}
}
public void Face_log()
{
Response.Redirect("defaul.aspx");
}
Kolay gelsin
Hiç yorum yok:
Yorum Gönder