Avatar billede Kim Neesgaard Seniormester
22. marts 2005 - 16:50 Der er 22 kommentarer og
1 løsning

Udregning i en sub giver et mærkeligt resultat

Jeg har lavet en lille .aspx fil, som jeg inkluder på en anden side og her har jeg observeret et mærkeligt fænomen. Koden er:

<script runat="server">

Public minvar As Integer = 324

'function y
'y = minvar + 1
'end function

sub y
minvar = minvar + 1
end sub

</script>

Det mærkelige er, at resultatet efter kørsel een gang på hovedsiden er, at minvar bliver 326.

Hvis sub'ben ser sådan ud:

sub y
minvar = minvar
end sub

bliver resulatet 324 - hvorfor lægger den 2 til, når jeg kun lægger 1 til?

Kører jeg i stedet funktionen, så bliver minvar 325 som forventet.
Avatar billede arne_v Ekspert
22. marts 2005 - 16:59 #1
Hvor bliver y kaldt ?
Avatar billede Kim Neesgaard Seniormester
22. marts 2005 - 17:34 #2
Fra den .aspx fil, hvor filen med sub'ben er included.
Avatar billede snepnet Nybegynder
22. marts 2005 - 18:16 #3
fra hvilken metode / præcist hvordan bliver med funktionen y kaldt ?
er det f.eks. noget du gør fra page_load, en eventhandler eller ?
mvh
Avatar billede Kim Neesgaard Seniormester
22. marts 2005 - 20:43 #4
Det er fra page_load.
Avatar billede snepnet Nybegynder
22. marts 2005 - 21:01 #5
har du en autoeventwireup="true" - eller alternativt ikke angivet den i dit pagedirective ?
... hvis du bruger en visual studio template til din code-behind, og ikke angiver AutoEventWireUp="False", vil du få kaldt page_load 2 gange ved hvert roundtrip.
mvh
Avatar billede Kim Neesgaard Seniormester
23. marts 2005 - 10:50 #6
Så vidt jeg kan se, har jeg ikke autoeventwireup angivet. Jeg 'fusker' med Web Matrix og jeg har lavet en almindelig includefil, som man ville lave i 'gamle dage'. Jeg har en Visual Studio, men kan ikke få den til at køre på min hjemmemaskine med Windows XP Home - desværre. Hvis jeg bruger

function y
y = minvar + 1
end function

i page_load tæller den ikke 2 op, men kun 1?

Jeg mangler meget i .NET - du kender vel ikke et godt kursus til en med min begrænsede viden, men stor interesse til at lære mere?
Avatar billede Kim Neesgaard Seniormester
23. marts 2005 - 11:02 #7
Hvis jeg lægger Sub kaldet i en knap i stedet for page_load, tæller den kun een frem. Hvorfor kører page_load to gange?
Avatar billede snepnet Nybegynder
23. marts 2005 - 11:17 #8
hvordan ser din code-behind ud ?

har du en linie i denne stil :

this.Load += new System.EventHandler(this.Page_Load);

det er sådan visual studio's 2003 templaten sikrer at page_load kaldes, og hvis du ikke har angivet autoeventwireup = false vil du få den kaldt to gange.

mvh
Avatar billede snepnet Nybegynder
23. marts 2005 - 11:18 #9
et godt .net kursus.... hmmm... ved jeg snart ikke.
det "mest sikre" ville nok bare være at tage nogle af de kurser der ligger som krav til en mcsd ell.
du kan læse om det f.eks. www.superusers.dk eller på www.teknologisk.dk
mvh
Avatar billede Kim Neesgaard Seniormester
23. marts 2005 - 15:34 #10
Den ser bare sådan ud:

<%@ Page Language="VB" %>
<script runat="server">

    Public minvar As Integer = 324
   
    'function y
    'y = minvar + 1
    'end function
   
    sub y
    minvar = minvar + 1
    end sub

</script>
<html>
<head>
</head>
<body>
</body>
</html>
Avatar billede snepnet Nybegynder
23. marts 2005 - 15:47 #11
kan du ikke vise mig den kode du kalder ovenstående med... det du har sendt vil ikke gøre noget i sig selv.
(gerne al den kode du har... både aspx-fil, og hvis du har en code-behind fil så også den).

hvad mener du for øvrigt med at du includer den ?

hvis du har små klodser du gerne vil indsætte på dine andre sider bør du lave det som usercontrols...

mvh
Avatar billede Kim Neesgaard Seniormester
29. marts 2005 - 16:45 #12
Jo - undskyld forsinkelsen! Det er simpelthen:

Sub Button1_Click(sender As Object, e As EventArgs)
y
textbox1.text = minvar
End Sub

Når jeg lægger koden i en knap, regner den kun een frem.
Avatar billede snepnet Nybegynder
29. marts 2005 - 20:11 #13
hej igen neesgaard :o)

hvis jeg skal komme med et bud på hvorfor du får kørt page_load 2 gange (hvis det altså er det der sker) - bliver jeg nødt til at se den relevante kode.

mvh
Avatar billede Kim Neesgaard Seniormester
29. marts 2005 - 21:39 #14
Der står en masse anden kode, så jeg lavede lige et par testfiler og de ser sådan ud:

Hovedform:

<%@ Page Language="VB" %>
<script runat="server">

    ' Insert page code here
   
    Sub Page_Load(sender As Object, e As EventArgs)
   
    y
    textbox1.text = minvar
   
    End Sub

</script>
<html>
<head>
</head>
<body>
<!--#INCLUDE FILE="Funktioner.aspx" -->
    <form runat="server">
        <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
        <!-- Insert content here -->
    </form>
</body>
</html>

Form med fællesfunktioner:

<script runat="server">

    Public minvar As Integer = 324

    sub y
    minvar = minvar + 1

    end sub

</script>

Kørsel af denne giver 325 i tekstboksen, så det er ok. Jeg kan sagtens sende den anden fil til dig, men den er så meget på designstadiet, at jeg ikke synes den hører til på eksperten.
Avatar billede snepnet Nybegynder
29. marts 2005 - 23:30 #15
har nok lige tabt tråden her .... det du har vist vil ganske rigtig give, at der bliver lagt én til de 324, så øhh.... hvad er det der driller dig nu ?

mvh
(bortset fra det .... det er sådan lidt en asp-type løsning du har lavet der, og ikke en særlig typisk asp.net løsning - er det med vilje ?)
Avatar billede Kim Neesgaard Seniormester
30. marts 2005 - 09:37 #16
Nej - jeg ved godt/har fundet ud af, at man bør bruge en codebehind, men det kan jeg ikke rigtig få til at virke (spg. 601428) og det forekommer også lidt besværligt, når man kun har Web Matrix. Jeg kan desværre ikke bruge min Visual Studio, da jeg har Windows XP Home på min maskine.
Avatar billede snepnet Nybegynder
30. marts 2005 - 11:17 #17
ahh... ja jeg har lige kigget det spm du refererede til igennem.
det skal du nok få styr på... hvis du sender mig en emailadresse ell. skal jeg sende dig en stak filer som du kan komme i luften med.
mvh
Avatar billede snepnet Nybegynder
30. marts 2005 - 11:20 #18
der er også en meget god artikel her
http://www.wimdows.net/articles/printme.aspx?aid=18
men hvis du synes den er lidt voldsomt, skriver du bare hvordan jeg kan sende noget til dig.
mvh
Avatar billede Kim Neesgaard Seniormester
01. april 2005 - 08:39 #19
Her er en email: SLETinfo@nees.dkSLET
Avatar billede Kim Neesgaard Seniormester
30. april 2005 - 11:32 #20
Vil du give et svar?
Avatar billede snepnet Nybegynder
30. april 2005 - 11:48 #21
ok - :o)
mvh
Avatar billede Kim Neesgaard Seniormester
30. april 2005 - 14:06 #22
Nu syens jeg, at jeg har fået konceptmæssigt styr på codebehind og fælles class filer - mange tak for din tålmodighed!!!
Avatar billede snepnet Nybegynder
30. april 2005 - 14:47 #23
det var så lidt :o)
mvh
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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