.NET & C#
Von: RASTA (abgemeldet), 16.12.2002 16:52 Uhr
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



  1. Antwort von Giuseppe 0
    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]
    8 Kommentare
    • von RASTA (abgemeldet) 0
      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]
    • von Giuseppe 0
      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]
    • von RASTA (abgemeldet) 0
      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


    • von Giuseppe 0
      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
    • von el donti 0
      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
    • von Giuseppe 0
      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]
    • von el donti 0
      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).
    • von RASTA (abgemeldet) 0
      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