nächste etwas blödere frage zu .net/asp

Von: (abgemeldet) , Frage gestellt am Mo, 16. Dez 2002
hallo zusammen,

folgendes..

ich hab eine asp-seite mit label und button.
beim klick auf den button wird etwas in das label geschrieben.
beim weiteren klick wird dem label text hinzugefügt
und beim weiteren klick, wieder, usw. etc..

dazu habe ich eine variable deklariert die ich im button-klick-ereignis abhandle, und immer +1 zählen lasse
bsp.

if i = 0 then
label.text = "hallo"
elseif i = 1 then
label1.text = "hallo hallo"
elseif i = 2 then
label1.text = "hallo hallo hallo"
end if

i = i + 1

--------------
das problem ist, das bei jedem button-klick die variable i wieder den wert 0 hat :-(
wie umgeht, trickselt man sowas -- oder bin ich generell zu blöd?

vielen dank für eure tips

viele grüße

rasta

9 Antworten zu dieser Frage

  1. Antwort von nach 5 Stunden 0 hilfreich
    Re: nächste etwas blödere frage zu .net/asp
    hi

    guck dir in der hilfe die asp.net themen Session, Application und Cache an. Es ist normal dass die Variable diesen wert verliert...

    hier eine kleine demo wie es gehen könnte

      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            i = Session.Item("myI")
        End Sub
    
        Dim i As Integer
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            i = i + 1
            Button1.Text = i.ToString()
            Session.Item("myI") = i
        End Sub
    



    gruss [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
    • Antwort von (abgemeldet) nach 19 Stunden 0 hilfreich
      Re^2: nächste etwas blödere frage zu .net/asp
      hallo guiseppe,

      vielen dank für deine antwort -- sehr gut ;-)))

      nur noch ne blde frage -- bin ahnungslos

      irgendwoher weis ich, das sich die session-variable oder id- oder was weis ich schlag mich tot ändert-
      ist das so?

      nicht das ich in meine session-variablen schreibe und irgendwann sind die werte weg weil sich die session geändert hat


      viele grüße

      rasta [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
      • Antwort von nach einem Tag 0 hilfreich
        Re^3: nächste etwas blödere frage zu .net/asp
        hi

        wie es bei asp.net ist weiss ich nicht so genau... vermutlich aber wie bei asp. und da ist es so dass die session nach einem timeout (irrtum vorbehalten 15min) verlohren ging.
        wenn dir das nicht genügt dann schreibe deine variable in ein cookie oder so...

        gruss [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
        • Antwort von (abgemeldet) nach 2 Tagen 0 hilfreich
          Re^4: nächste etwas blödere frage zu .net/asp

          hi guiseppe,

          vielen dank für deine antwort---
          wie gehst du denn persönlich vor, wenn du eine asp-website ertellst? begnügst du dich mit den session-variablen oder schreibst du in ein cookie?
          oder von fall zu fall?

          viele grüße

          rasta hi

          wie es bei asp.net ist weiss ich nicht so genau... vermutlich
          aber wie bei asp. und da ist es so dass die session nach einem
          timeout (irrtum vorbehalten 15min) verlohren ging.
          wenn dir das nicht genügt dann schreibe deine variable in ein
          cookie oder so...

          gruss


          • Antwort von nach 2 Tagen 0 hilfreich
            Re^5: nächste etwas blödere frage zu .net/asp
            das ist von fall verschieden. eben wie schon gesagt mit asp.net hab ich mich noch nicht gross befasst. bei asp hab ich entweder session variablen gebraucht, cookies oder hidden fields.

            gruss
          • Antwort von nach 2 Tagen 0 hilfreich
            Re^5: nächste etwas blödere frage zu .net/asp
            Hi Rasta

            Ich würde generell sagen solange du nicht informationen brauchst wie zum beispiel das wie vielte mal der gleiche benutzer auf deiner seite ist, würd ich grundsätzlich cookies nicht verwenden. (ok man könnte solche informationen in einer datenbank ablegen nebst anderen statistic informatione). Aber generell eher nicht verwenden da leute cookies ja zum fressen gern haben :)

            Ich würde deine variablen in der Sessen ablegen. Und ich würde dir auch raten einen sessenwraper zu machen, so läufst du nicht gefahr das du die keys falsch schreibst oder bei jedem aufruf nachschauen musst. bsp siehe unten.
            public class SessState
            	{
            		public SessState(){	}
            
            		public static SqlConnection DBConnection
            		{
            			get{return (SqlConnection)HttpContext.Current.Session["sql.connection"];}
            			set{ HttpContext.Current.Session["sql.connection"] = value; }
            		}
            
            		public static int UserId
            		{
            			get{return (int)HttpContext.Current.Session["user.id"];}
            			set{ HttpContext.Current.Session["user.id"] = value; }
            		}
            
            			}
            
            	}
            
            


            Somit kannst du nur noch mit intellisens deine klasse anvisieren und etwas wie folgt machen

            this.myConnection = SessState.DBConnection;

            grüschen
            eldonti
            • Antwort von nach 3 Tagen 0 hilfreich
              Re^6: nächste etwas blödere frage zu .net/asp
              tja alles gut und recht... aber wenn ich mich nicht täusche benötigt man für sessions sowieso cookies... nur werden diese von ASP selber verwaltet... und man merkt nichts davon. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
            • Antwort von nach 3 Tagen 0 hilfreich
              Re^7: nächste etwas blödere frage zu .net/asp
              Also wenn ich der MSDN glauben schenke was ich eigentlich auch tue dann gilt folgendes: (und ergo cookies sind nicht benötigt wenn man nicht will!)

              HTTP is a stateless protocol, which means that it does not automatically indicate whether a sequence of requests is all from the same client or even whether a single browser instance is still actively viewing a page or site. As a result, building Web applications that need to maintain some cross-request state information (shopping carts, data scrolling, and so on) can be extremely challenging without additional infrastructure help.

              ASP.NET provides the following support for sessions:

              A session-state facility that is easy to use, familiar to ASP developers, and consistent with other .NET Framework APIs.
              A reliable session-state facility that can survive Internet Information Services (IIS) restarts and worker-process restarts without losing session data.
              A scalable session-state facility that can be used in both Web farm (multicomputer) and Web garden (multiprocess) scenarios and that enables administrators to allocate more processors to a Web application to improve its scalability.
              A session-state facility that works with browsers that do not support HTTP cookies.
              A throughput equivalent to that of ASP (or better) for core session-state scenarios (50/50 read/write when putting items into shopping carts, modifying last page visited, validating credit card details, and so on).
            • Antwort von (abgemeldet) nach 21 Tagen 0 hilfreich
              Re^8: nächste etwas blödere frage zu .net/asp
              vielen dank für eure antworten.
              frohes neues jahr wünsch ich allerseits ;-)

              viele grüße

              rasta
Keine passende Antwort gefunden? Jetzt eigene Frage stellen!