by Stian

DefaultButton i ASP.NET

EnterbuttonForskjellige nettlesere behandler et enter-trykk på forskjellige måter avhengig av antall tekstbokser og antall knapper på siden. Dette gjør at vi må styre hvilke knapp som skal behandle et enter-trykk i web applikasjonen. Løsninger som å disable enter knappen med et javascript kan få uheldige konsekvenser som f.eks i en Text Area komponent hvor linjeskift ikke vil virke lenger.

Løsning du vil bruke i de fleste tilfellene er:
<form id=”form1″ runat=”server” defaultbutton=”btn1″>

Problemet med denne løsningen kom jeg akkurat over i et prosjekt hvor det som så mange andre plasser brukes Masterpages. Vi står derfor uten en form-tag i undersiden og vi må i stedet bruke Panel på denne måten:
<asp:Panel ID=”pnl1″ runat=”server” defaultbutton=”Button1″>

På denne måten kan du styre flere områder på websiden til å trigge forskjellige Buttons ved enter-trykk.

  • http://www.degree.no Andreas

    Jepp, denne har jeg brukt mye – forbedrer brukervennligheten på sidene betraktelig og fungerer mye bedre enn å forsøke å sette fokus på en knapp fra code behind.

    En ting som er verdt å få med seg som har kostet meg mange irriterende minutter med feilsøking er at om defaultbutton-verdien ikker matcher navnet på en knapp (navnet blir endret, knappen fjernes, .. ) tryner applikasjonen uten at du får noe særlig pekepinn på hva som faktisk er årsaken.