Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ASP.NET postback i form.onsubmit event

[es] :: .NET :: ASP.NET :: ASP.NET postback i form.onsubmit event

[ Pregleda: 603 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3004
194.228.230.*

Sajt: blog.radioni.ca


Profil

icon ASP.NET postback i form.onsubmit event06.03.2007. u 09:42

Pozdrav svima,

Ne znam koliko koristite klijentske skriptove, tj. da li ste se susretali sa sledećim problemom:

Imam neki klijentski kôd koji se izvršava na onsubmit eventu forme. Ako se postback izaziva npr. klikom na neko dugme, to lepo radi. Međutim, ako se postback izaziva iz javascripta (npr. korišćenjem LinkButton kontrole, ili AutoPostBack propertija na recimo RadioButtonList-u), onsubmit handler se ne poziva (proizvođači brauzera su tu odstupili od W3C specifikacije). Kako vi rešavate ovaj problem?
06.03.2007. u 09:42 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3004
194.228.230.*

Sajt: blog.radioni.ca


Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 10:04
Ok, posle malo guglanja našao sam drži-bure-vodu rešenje (ovde ga kombinujem sa jQuery):
Code:

// save a reference to the original __doPostBack
var __oldDoPostBack = __doPostBack;
// replace __doPostBack with another function
__doPostBack = function(eventTarget, eventArgument) {
    // zvanje onsubmit handlera:
    $('#aspnetForm').submit();
    // zovemo originalnu ASP.NET postback funkciju
    return __oldDoPostBack (eventTarget, eventArgument);
}

Ako neko ima bolje rešenje, neka javi. Hvala.
06.03.2007. u 10:04 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1612
*.logic.bm.



Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 12:18
Izgleda mi kao da radis u .NET1.1, asp.net2 je resio ovaj problem. Ovako izgleda fabricki publikovani doPostback:

Code:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>



Kao sto vidis prvo poziva onsubmit ako je prisutan i na osnovu return-a iz onsubmit postuje ili ne (mozes da sprecis submit forme). Kombinovano sa resenjem koje si dao moglo bi i ovako da se uradi:


Code:

<script type="text/javascript">
<!--
var __oldDoPostBack = __doPostBack;
__doPostBack = function(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    __oldDoPostBack (eventTarget, eventArgument);
    }
}
// -->
</script>


Proveri samo dal 1.1 koristi identifikator theForm ili neki drugi....
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
06.03.2007. u 12:18 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3004
194.228.230.*

Sajt: blog.radioni.ca


Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 12:40
Au contraire, koristim 2.0, fabrički JS izgleda tako kao što si napisao, ali ne radi (kad se forma submituje na način koji sam gore naveo)... :) Iskreno, pojma nemam zašto.

Btw, u rešenju koje daješ dvaput se proverava i poziva onsubmit, jednom u tvojoj bezimenoj funkciji, drugi put u staroj __dopostback funkciji.
06.03.2007. u 12:40 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1612
*.logic.bm.



Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 13:16
Citat:
jablan: Au contraire, koristim 2.0, fabrički JS izgleda tako kao što si napisao, ali ne radi (kad se forma submituje na način koji sam gore naveo)... :) Iskreno, pojma nemam zašto.

Btw, u rešenju koje daješ dvaput se proverava i poziva onsubmit, jednom u tvojoj bezimenoj funkciji, drugi put u staroj __dopostback funkciji.


Pa koji je to brauzer, kod mene na IE 6 i 7 radi ok. Mogu da razumem da softverski submit() na formi ne pozove onsubmit ali da ga ne pozove kroz direktan poziv onsubmit() handlera, to je veoma cudno...

A moje resenje poziva dvaput zato sto sam mislio da koristis 1.1 i da je to uzrok tvojih problema. aspnet2 vec ima taj kod.
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
06.03.2007. u 13:16 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3004
194.228.230.*

Sajt: blog.radioni.ca


Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 15:08
Hm, malo sam isprobavao i situacija je sledeća: onsubmit radi lepo kad se nakači direktno iz JS. Međutim, kad za to koristim jQuery, iz nekog razloga ne radi, i u FF i u IE... Kad nađem malo vremena pokušaću da vidim zašto se to dešava.

Hvala u svakom slučaju.
06.03.2007. u 15:08 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3004
194.228.230.*

Sajt: blog.radioni.ca


Profil

icon Re: ASP.NET postback i form.onsubmit event16.03.2007. u 16:24
Update: Ako nekom zatreba, tema je elaborirana i par "workaround" rešenja je pronađeno na http://www.devprotalk.com/showthread.php?t=2607
16.03.2007. u 16:24 

[es] :: .NET :: ASP.NET :: ASP.NET postback i form.onsubmit event

[ Pregleda: 603 | Odgovora: 6 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.