[ toxi_programer @ 03.12.2007. 16:54 ] @
Imam sledeći kod:

Code:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class Toxi
{
    public int Broj = 0;
    public Toxi(int broj) { Broj = broj; }
}

public partial class _Default : System.Web.UI.Page 
{
    Toxi mojToxi;
    protected void Page_Load(object sender, EventArgs e)
    {
        mojToxi = new Toxi(1);
    }
    protected void btnSmanji_Click(object sender, EventArgs e)
    {
        mojToxi.Broj--;
        txtBroj.Text = mojToxi.Broj.ToString();
    }
    protected void btnUvecaj_Click(object sender, EventArgs e)
    {
        txtBroj.Text = mojToxi.Broj.ToString();
        mojToxi.Broj++;

    }

}


dakle, u aspx fajlu postoje tri komponente - textbox i dva dugmeta. Ovaj kod koji sam napisao verovatno nema neke veze sa mozgom ali činjenica je da ja ASP.NET pojma nemam. Da objasnim šta ustvari hoću da postignem:
Hoću da unutar moje _Default klase napravim objekat klase "Toxi" i da njegovom polju "Broj" smanjim vrednost za jedan kad god se klikne na btnSmanji. Međutim, ovo ne uspevam da uradim. Petljao sam nešto sa this.IsPostBack ali opet sve isto.
Zamolio bih Vas da me uputite gde grešim i kako ovo da izvedem.
[ aleksandarpopov @ 03.12.2007. 17:37 ] @
HTTP protokol je protokol bez stanja -> znaci da se svaki zahtev klijenta (browsera) obradjuje od strane web servera kao neki novi zahtev (ako nije drugacije naznaceno) tj. web server nema pojma da si ti vec imao interakciju sa njime. Znaci stranica i sve promenljive se salju kao da je prvi put kreirana. Ovo se prevazilazi upotrebom promenljivih koje se smestaju u session objekte ili u cookies i iscitavanjem vrednosti promenljivih iz istih ako je strana "post backed"... o odrzanju stanja imas gomilu tutoriala na netu...
[ Fedya @ 04.12.2007. 13:06 ] @
Ako hoces da ti vrednost bude ista za sve klijente tvoje stranice (lakse resenje) oznacis promenjivu kao static i to je to.
U suprotnom mozes da snimis u Session ili ViewState.
[ android~paranoid @ 04.12.2007. 14:26 ] @
Recimo:

Code:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            int Broj=0;
            Session.Add("Broj", Broj);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["Broj"] = Convert.ToInt32(Session["Broj"]) + 1;
        Label1.Text = Session["Broj"].ToString();
    }
    protected void Button1_Click1(object sender, EventArgs e)
    {
        Session["Broj"] = Convert.ToInt32(Session["Broj"]) - 1;
        Label1.Text = Session["Broj"].ToString();
    }
[ toxi_programer @ 04.12.2007. 14:30 ] @
Heh... Shvatam upotpunosti.

Zahvaljujem na objašnjenju
[ toxi_programer @ 05.12.2007. 20:54 ] @
Imam opet jedno pitanje u vezi sa ASP.NET.

Na stranici postoji kod:
Code:

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Ovo treba da bude unutar tabele");
}
</script>

Ako bih ovo hteo da uradim u php-u napisao bih:
Code:

<?php
printf("Ovo treba da bude unutar tabele");
?>


I sad, ako bi se navedena php skripta našla unutar neke celije tabele, tekst bi se ispisao baš na mestu gde se nalazila skripta.
Međutim kod asp skripte to nije slučaj već se sve ispisuje na početku fajla.

Cenim da je problem u tome što sam stavio kod unutar Page_Load() ali ne znam šta drugo da stavim. Probao sam da dam neko ime funkciji a onda da je pozovem npr. klikom na neko dugme ali neće - piše da ta funkcija ne postoji
[ Shadowed @ 05.12.2007. 21:32 ] @
Mozes na vise nacina. Mozes na tom mestu staviti label ili literal i u Page_Load postaviti njihov .text property. Ako hoces samo neki tekst, onda label. Za ubacivanje proizvoljnog teksta u sam fajl (znaci i html, js itd.) koristi literal.
[ toxi_programer @ 06.12.2007. 19:41 ] @
OK, evo nešto pokušavam ali ne ide baš :)
Ako ne uspem ću se javim opet...