witam, dopiero zaczynam swoja przygode z webformsami i napotkalem maly problem.
Mianowicie, tworze sobie klase ktora posiada 2 pola int i funkcje zmieniajaca te dwa inty.
Teraz mam label1 i 2 pod ktorymi sa wartosci z intow z klasy, a przy kliknieciu w button wywolywana jest funkcja modyfikujaca, problem polega na tym ze z kazdym kliknieciem buttona, obiekt klasy jest tak jakby na nowo tworzony(posiada wartosci z konstruktora a nie te ktore byly po pierwszym kliknieciu). Nie wiem w czym polega problem, czy w miejscu w ktorym tworze obiekt klasy(po za funkcja Button1_Click) czy tez w innym miejscu.
Mam nadzieje ze wytlumaczylem jako tako.
Prawdopodobnie problemem jest to, że każde kliknięcie w przycisk przeładowuje stronę, więc wszystkie obiekty są tworzone na nowo. Poczytaj o Page.IsPostback
.
Użyj ViewState do przechowywania obiektu klasy (albo jego właściwości - zależy od rozmiarów). Twórz nowy obiekt tylko gdy !IsPostBack
.
Tu jest trochę informacji i przykład jak korzystać z ViewState:
http://msdn.microsoft.com/en-us/library/bb386448(v=vs.100).aspx
dzieki, probuje stworzyc obiekt tylko gdy !ispostback ale po wcisnieciu buttona wyskakuje ze obiekt nie zostal utworzony
I wyszli ludzie na ulicę. Setki , tysiące, dziesiątki tysięcy. Machając gniewnie transparentami, krzyczą jednym głosem: "Pokaż swój kod! Pokaż swój kod!"
public partial class play : System.Web.UI.Page
{
game gra;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gra = new game();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int txbox = Convert.ToInt16(TextBox1.Text);
gra.play(txbox, '=');
Label1.Text = Convert.ToString(gra.a);
Label2.Text = Convert.ToString(gra.b);
Label3.Text = gra.c;
}
}
Plik .cs
Nie masz zapisu do ViewState. Musiałbyś po utworzeniu zapisać do ViewState i czytać z niego jeżeli to jest PostBack.
cos mam maly problem z tym Viewstate, zapamietuje powiedzmy zmienna a z klasy game do viewstate, modyfikuje ten obiekt z viewstate powiedzmy o -5, jednak za kazydym razem dalej jest tworzony nowy obiekt klasy
Aha. Pokaż kod.
Posiedzialem i doszedlem, dzieki wielkie za pomoc.
Posiedzialem i doszedlem
Doszedłeś od samego siedzenia? Takie rzeczy chyba się leczy... :P