This Blog is not active anymore, further posts will be available on my company website. Read new posts here
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.