Avatar billede Kim Neesgaard Seniormester
11. november 2015 - 12:55 Der er 9 kommentarer og
1 løsning

onblur på en TextBox skal starte en .NET sub

Jeg har en .aspx form med 4 textbokse. På den anden textbox vil jeg gerne udføre en kontrol af de initialer, der står i boksen, i det øjeblik fokus flyttes fra denne og til den næste textbox.

Jeg har lavet en test-Sub der står i codebehind:

Sub test()
        lblInfo.Text = "test"
End Sub

I Page_Load har jeg indsat dette:

tbInit.Attributes.Add("onblur", "test()")

Jeg kan godt køre uden fejl, men når jeg fjerneR fokus fra textboksen tbInit får jeg en 'Javascript runtime error: 'test' is undefined':

<input name="ctl00$ContentPlaceHolder1$tbInit" type="text" maxlength="42" id="ctl00_ContentPlaceHolder1_tbInit" tabindex="2" onblur="test()" style="width:98px;" /></td>

Hvad gør jeg mon galt?
Avatar billede keysersoze Guru
11. november 2015 - 13:39 #1
onblur er JavaScript og din test() er .NET - de to ting aner i bund og grund intet om hinanden. Enten skal din test() være JavaScript, eller også skal din blur være .NET altså med et postback/callback til følge eller en kombination, hvor din javascript-metode via AJAX kalder noget .NET fx med hjælp fra web api.
Avatar billede Kim Neesgaard Seniormester
11. november 2015 - 14:37 #2
Jeg læste et sted på nettet, at man kan gøre sådan:

<script runat="server">
Sub test()
  lblInfo.Text = "test"
End Sub
</script>

så de på den måde kan kende hinanden, men det kunnejeg heller ikke få til at virke.
Avatar billede keysersoze Guru
11. november 2015 - 15:22 #3
Du kan ikke få javacript til at genkende eller eksekvere en .NET funktion - hvor har du læst det?
Avatar billede Kim Neesgaard Seniormester
12. november 2015 - 09:14 #4
Her: https://msdn.microsoft.com/en-us/library/7ytf5t7k.aspx under 'To add a client onclick event to a button control', men jeg har måske misforstået det?
Avatar billede keysersoze Guru
12. november 2015 - 09:38 #5
Ja. OnClientClick er JavaScript og kommer med en confirm-boks - siger du ja til den ryger vi over i OnClick, som, fordi det er en serverkontrol, er et postback til .NETs clickhandler. Altså er Button1_Click .NET og foregår på serveren - det er ikke JavaScript.
Avatar billede Kim Neesgaard Seniormester
12. november 2015 - 10:43 #6
Jeg har lige prøvet det af. Mange tak for dine gode forklaringer! Jeg ved ikke helt konkret hvad jeg skal gøre ifm. 11. november 2015 kl. 13:39:07, så jeg vælger en mere model simpel løsning.
Avatar billede Kim Neesgaard Seniormester
12. november 2015 - 10:44 #7
Jeg håber nu at have tildelt dig points.
Avatar billede Kim Neesgaard Seniormester
12. november 2015 - 10:44 #8
Nå nej - du skal jo lægge et svar - vil du gøre det?
Avatar billede keysersoze Guru
12. november 2015 - 11:24 #9
Kig på begrebet AJAX og kig så på .NETs WEB API - så skal det nok hurtigt komme til at give mening :)
Avatar billede Kim Neesgaard Seniormester
12. november 2015 - 12:10 #10
Ok - tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester