Navigatie

Archief

Categorieën

Blogroll

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Disclaimer
De inhoud van deze weblog betreft uitsluitend mijn persoonlijke mening, niet die van mijn werkgever. Mijn werkgever is niet verantwoordelijk voor de inhoud en sluit hierbij iedere aansprakelijkheid uit.

Sign In

Zoeken

 Saturday, March 11, 2006
Saturday, March 11, 2006 7:45:41 AM (W. Europe Standard Time, UTC+01:00) ( )

ASP.NET 2.0 biedt de mogelijkheid een defaultbutton in te stellen op het formulier. Hier maakt het niet uit of dit een submit, link of Image button is. Standaard biedt ASP.NET 1.1 geen ondersteuning voor een default link, of image button.  Dit houdt in dat elke keer dat een formulier verstuurd moet worden, de gebruiker dit moet doen door op de betreffende button te klikken.  Middels het gebruik van Javascript is dit echter wel te realiseren.

Onderstaand Javascript (alleen getest in Internet Explorer) vangt het Keypress event op pagina niveau  af, controleert of  de enter toets is gebruikt en wanneer het hidden veld __EVENTTARGET gevuld is wordt een postback gedaan.

document.attachEvent("onkeypress",checkkey);

            function GetValue(Field) {
                if (null == Field) {
                    return "";
                }
                
                if ("undefined" == typeof(Field) ) {
                    return "";
                }
                return Field.value;
            }
    
            function checkkey(e)
            {
                if(e.keyCode==13){
                    e.returnValue=false;
                    e.cancel = true;
                    var theform = document.forms[0];
                    var __EVENTTARGET = GetValue(theform.__EVENTTARGET);
                    var __EVENTARGUMENT = GetValue(theform.__EVENTARGUMENT);
                    
                    if (__EVENTTARGET.length > 0){
                        __doPostBack(__EVENTTARGET,__EVENTARGUMENT);
                    }
                }
            }

Het Page_Load event  zorgt ervoor dat het hidden veld “__EVENTTARGET” gevuld wordt met het ClientId van button lnkBVerstuur.

private void Page_Load(object sender, System.EventArgs e){
            Page.RegisterHiddenField("__EVENTTARGET", lnkBVerstuur.ClientID); 
}

Het Click event van lnkBVerstuur wordt gebruikt om te controleren of de gebruiker daadwerkelijk op linkbutton verstuur heeft gedrukt.

private void lnkBVerstuur_Click(object sender, System.EventArgs e){
            lblOut.Text = "Op de verstuur link button geklikt";
}

Onderstaande afbeelding toont het resultaat wanneer we de applicatie starten en in het formulier op enter drukken.


 


Download hier de source code.

Comments [0] | | #