Hej Nu har jag löst mitt problem. Lösningen kanske inte är så vacker, men den löser som sagt mitt problem. Ett smidigt sätt att kontrollera om det är siffror är att endast tillåta siffror..då kanske följande kod kan vara till hjälp?TextChanged-event och autopostback
Jag har en textbox på en sida. Om texten i den textboxen ändras vill jag fånga upp det direkt användaren lämnar textboxen. Det fungerar ju om man sätter autopostback=True, och hanterar ändringen i textbox_TextChanged. Problemet är om man klickar på en dropdownlist direkt efter man lämnat textboxen. Om autopostback=true för textboxen så tappar man liksom det första klicket på dropdownlisten. Man måste klicka en andra gång på dropdownlisten för att den ska "fällas ut". Om man sätter autopostback=false för textboxen så behöver man endast klicka en gång på dropdownlisten för att den ska fällas ut men då kommer ju inte TextChanged-eventet direkt man lämnar textboxen.
Jag har läst om viewstate och process-sekvenser, men jag fattar inte om man måste acceptera detta beteende eller om det finns något man kan göra.
Kan någon hjälpa mig vidare?
Tacksam för alla uppslag!
/A-KSv: TextChanged-event och autopostback
Jag har ett javascript(som jag så klart hittatde här på pellesoft...):
<script type="text/javascript">
<!--
function summa(){
tal_1 = (document.getElementById("tal_1").value == '') ? 0 : document.getElementById("tal_1").value;
tal_2 = (document.getElementById("tal_2").value == '') ? 0 : document.getElementById("tal_2").value;
document.getElementById("tal_3").value = parseInt(tal_1)+parseInt(tal_2);
}
//-->
</script>
Sedan gör jag tal_1.Attributes.Add("onKeyUp", "summa();"). Då kan jag sätta autopostpack=false. Fungerar utmärkt! Nu ska jag bara lista ut hur man kollar så att det man matar in i textboxen verkligen är en siffra, men det är ju en annan diskussion som hör hemma hos javascripten...
/A-KSv:TextChanged-event och autopostback
<code>
<SCRIPT language="Javascript">
<!--
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
</code>
Sedan beror det ju på hur du vill binda scriptet till textboxen. Använder du dig av .Net:s textboxar kan du göra det i codebehind:
<code>
textbox1.attributes.add("onkeypress", "return isNumberKey(event)")
</code>
Hoppas det är till någon hjälp!