Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skicka värden mellan funktioner

Postades av 2005-10-20 12:47:13 - Michael Gustafson, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 511 personer

Hej
Jag har kört fast och behöver hjälp. Har följande upplägg:
Jag vill att att funktion ett sätter ett värde i en variabel. Sen vill jag att en annan funktion använder det värdet. Låter enkelt men hur gör jag det på bästa sätt?
Typ något liknande:

// Funktion 1
public void Button1 (Object sender, EventArgs e)
    {
            string MyString1= "foo";
     }

// Funktion 2
public void Button2 (Object sender, EventArgs e)
    {
            string MyString2 =  MyString1;
            MyLabel.Text = MyString2;
     }



// Smyken


Svara

Sv: Skicka värden mellan funktioner

Postades av 2005-10-20 14:32:44 - Per Persson

Lägg MyString1 som en medlemsvariabel i klassen:

private string MyString1;

// Funktion 1
public void Button1 (Object sender, EventArgs e)
    {
            MyString1= "foo";
     }

// Funktion 2
public void Button2 (Object sender, EventArgs e)
    {
            string MyString2 =  MyString1;
            MyLabel.Text = MyString2;
     }


Svara

Sv:Skicka värden mellan funktioner

Postades av 2005-10-20 14:49:22 - Michael Gustafson

Tack för svaret.
Har dock försökt denna lösning tidigare men får det inte att fungera.
Om jag gör precis som du säger, får inte funktion 2 något värde, dvs MyLabel är fortfarande tom.

Om jag istället lägger funktionerna i en egen class så får jag felmeddelande

CS0117: 'ASP.NewFile_aspx' does not contain a definition for 'Button2'


Svara

Sv: Skicka värden mellan funktioner

Postades av 2005-10-20 19:57:11 - Marthin Freij

Det låter som att du har dragit ut två knappar på sidan. För att just det bifogade exemplet ovan ska fungera måste du först trycka på Button1 och sedan på Button2. När du flyttar Button2 till en annan klass så har du säkert glömt att registrera dig på knappens click event.


Svara

Sv:Skicka värden mellan funktioner

Postades av 2005-10-20 20:48:21 - Michael Gustafson

Jo, jag har två knappar - och man måste trycka på först den ena, sen den andra. Det är det som jag vill uppnå. Om jag måste ha klass(er), ska funktionerna ligga i varsin klass eller i en gemensam.
Så här ser hela klabbet ut just nu (med en gemensam klass):

<script runat="server">
class foo
{ 
private string MyString1;

// Funktion 1
public void DoButton1 (Object sender, EventArgs e)
    {
            MyString1 = "foo";
            MyLabel.Text = MyString1;
     }

// Funktion 2
public void DoButton2 (Object sender, EventArgs e)
    {
            string MyString2 =  MyString1;
            MyLabel.Text = MyString2;
     }
 }
</script>
<html>
    <body>
        <form runat="server">
            <asp:button id="Button1" onclick="DoButton1" text="button1" runat="server" />
            <asp:button id="Button2" onclick="DoButton2" text="button2" runat="server" />
            <br />
            <asp:label id="MyLabel" runat="server" />
        </form>
    </body>
</html>


Om jag, som sagt, tar bort klassen foo (och låter funktionerna ligga utanför egendefinierad klass) så får funktionen 2 inget värde av funktionen 1. Och har jag klassen foo så får jag ovan nämnda felmeddelande.
Vad gör jag för fel?


Svara

Sv: Skicka värden mellan funktioner

Postades av 2005-10-21 09:33:31 - Benny Jonsson

Det finns liksom en tanke med objektorientering som kallas inkappsling. Dvs man skall inte komma åt saker hur som helst. Så har du variabler inne i ett objekt så skall inte andra objekt veta om dem. De skall över huvud taget inte bry sig! Vill du nå något i ett objekt får du skapa publika properties.

Exempelvis
<code>
'class 1 ....
public string getMyString1
{
get {return MyString1;}
}

'class 2....
'Du når variablen från klass två enligt nedan
instansen_av_klass_ett.getMyString1
</code>


Svara

Sv:Skicka värden mellan funktioner

Postades av 2005-10-21 11:55:39 - Michael Gustafson

Tack så mycket för era svar. Det uppskattas verkligen.
Jag har tidigare försökt att med "get" nå min variabel (på det sätt jag tror Benny menar, men får då felmeddelande: dvs CS0117: 'ASP.NewFile_aspx' does not contain a definition for 'DoButton1. Och då blev jag osäker på hur koden ska se ut. Kanske tänkte jag fel.
Nu ser mitt kodexempel ut som nedan, men får fortfarande felmeddelandet. Varför? Jag har ju en metod för "DoButton1" (i "class t")!?

class t
{
private string MyString1;
public string getMyString1
    {
        get {return  MyString1;}
    }

// Funktion 1
public void DoButton1 (Object sender, EventArgs e)
    {
        MyString1 = "foo";
        MyLabel.Text = MyString1;
    }
}


class v
{

// Funktion 2
public void DoButton2 (Object sender, EventArgs e)
    {
        MyString2 = t.getMyString1;
        MyLabel.Text = MyString2;
    }
}



Svara

Sv: Skicka värden mellan funktioner

Postades av 2005-10-22 22:31:56 - Mikael Plate

Är v-klassen din code-behind-klass? (Som anges i Inherits attributet i @Page-direktivet.) För ett aspx-script skapas bara ETT objekt av EN klass (antar klassen v). Det existerar helt enkelt inget objekt av klassen t.

Men ditt ursprungsproblem tror jag har att göra med att du måste tänka på att efter varje knapptryckning startar koden igen, och inga gamla värden finns kvar om de inte:

1. Är static (INTE bra eftersom alla besökare då delar på samma variabel).
2. Placeras i ViewState (funkar bara om nya postbacks görs från samma formulär, vilket i och för sig verkar vara ditt aktuella fall).
3. Placeras i Session (funkar även om du återkommer till detta script senare och trycker på button2).

// Funktion 1
public void Button1 (Object sender, EventArgs e)
    {
            ViewState["MyString1"] = "foo";
     }

// Funktion 2
public void Button2 (Object sender, EventArgs e)
    {
            string MyString2 =  (string)ViewState["MyString1"];
            MyLabel.Text = MyString2;
     }


Svara

Sv:Skicka värden mellan funktioner

Postades av 2005-10-23 20:09:22 - Michael Gustafson

Nu lärde man sig nått! Att spara variabler i Viewstate var nått jag inte visste. Lysande. Ska genast slå upp kapitlet i dot.net-boken och läsa på (+ kapitlet om session).
Sen vad gäller klasshanteringen så är jag fortfarande förvirrad. Tror jag får återkomma med en annan tråd angående detta spännande, men svåra, ämne senare...


Svara

Sv: Skicka värden mellan funktioner

Postades av 2005-10-24 00:00:07 - Joakim Åhl

vad händer om du skriver:

class foo
{ 
public string MyString1;

// Funktion 1
public void DoButton1 (Object sender, EventArgs e)


    {
            MyString1 = "foo";
            MyLabel.Text = MyString1;
     }

// Funktion 2
public void DoButton2 (Object sender, EventArgs e)

    {
            string MyString2 =  MyString1;
            MyLabel.Text = MyString2;
     }
 }


Svara

Sv:Skicka värden mellan funktioner

Postades av 2005-10-24 11:33:22 - Michael Gustafson

Joakim, din kod är samma som jag bifogade i ett tidigare inlägg i denna tråd. Att ändra variabeln MyString1 till public gör ingen skillnad. Resultatet blir samma felmeddelande som tidigare...
CS0117: 'ASP.NewFile_aspx' does not contain a definition for 'DoButton2'


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 606
27 953
271 705
892
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies