Správičky 2 177 Blogy 554 Fórum 13 382

page isDirty

photo
golo
24. 8. 2010 14:33:45
Body: 90
Najaktívnejší č.: 87

page isDirty

Hladam nejake overene funckne riesenie pre ASP.NET/AJAX, potrebujem zistovat ci sa na stranke nieco zmenilo Javascript/jQuery a ak uzivatel nieco zmenil a neklikol na Save a che ist na inu stranku malo by ho to upozornit, nasiel som nejake riesenia, ale ak mam v stranke user controly a update panel/y tak to nefunguje. Nejake napady

[Reakcia]

photo
vlko
24. 8. 2010 15:30:28
Body: 34445
Najaktívnejší č.: 1

RE: page isDirty

my celkom uspesne pouzivame tento kus kodu (pozor je mozne iba zobrazit otazku, zabranit opusteniu stranky sa neda)
// premenna indikujuca, ci sa pri ukonceny opytat ci skutocne skoncit
    var pendingChanges = false;
    
// sprava aky sa script opyta pri opusteni stranky
    var mssg = 'You have pending changes. Do you want to continue?'

   
// zaregistrovanie eventu pre opustenie stranky
    window.onbeforeunload = onPageClosing;

    function onPageClosing(e)
{
        if (pendingChanges)
{
            var e
= e || window.event;
            
// For IE and Firefox
            if (e) {
                e.returnValue
= mssg;
            }

            
// For Safari
            return mssg;
        }

    }

    
// pre nastavenie kontroly opustenia stranky nastav pendingChanges na true
    function onValueChange(sender, args) {
            pendingChanges
= true;
    }

    
// pre pripad, ze chces tuto otazku vypnut nastav pendingChanges na false
    function onSaveClick(sender, args) {
            pendingChanges
= false;
    }

[Reakcia]

photo
liero
27. 8. 2010 14:19:43
Body: 3105
Najaktívnejší č.: 11

RE: page isDirty

preco ti to mozno nefunguje s updatepanelom:
 mozno mas v html nieco ako $('input').change(onValueChanged)..., cize odchytavas onchange event.
ale ked sa ti updatne updatepalen, tie inputy, ktorym si priradil eventhandler onValueChanged uz neexistuju, namiesto nich su tam uz nove. Bud im priradis tieto eventhandlery znova (vid Scriptmanager.RegisterStartupScript), alebo pouzijes jQuery.live();

[Reakcia]



Najaktívnejší užívatelia
1. 34445 b. photo vlko
2. 15940 b. photo T
3. 15330 b. photo spigi
4. 5885 b. photo dudok
5. 5510 b. photo slavof
6. 4985 b. photo siro
7. 4720 b. photo duracellko
8. 3625 b. photo jakub
9. 3490 b. photo lubolacko
10. 3340 b. photo skippo