2013-06-23 2 views
0

У меня проблема с моими значениями свойств во время обработки событий. У меня есть 2 кнопки на веб-сайте формы windows, buttonA и buttonB. Это код, который у меня есть:Веб-сайт Windows Forms сбрасывает стоимость недвижимости?

public bool Clicked {get; set;} 

public void Page_Load(object sender, EventArgs e) 
{ 
    Clicked = false; 
} 

public void buttonA_Click (object sender, EventArgs e) 
{ 
    Clicked = true; 
} 

public void buttonB_Click (object sender, EventArgs e) 
{ 
    if (Clicked) 
    { 
     // JS box pops out 
    } 
} 

Нечто подобное. С помощью отладки, когда я нажимаю кнопку buttonA, Clicked устанавливает значение true, но когда после нее i Нажмите кнопку buttonB, это ложь, и это окно сообщения не отображается. Почему это происходит?

+3

ASP.Net! = WinForms. И вы не можете вызвать 'MessageBox' на сервере. – SLaks

+0

Вы используете многопоточность? – Edper

+0

Хм, да. Очевидно, что я «соврал» с кодом, просто хотел показать, что что-то вызывает, если Clicked is true. У меня нет этого MessageBox и я сразу не думаю, что на самом деле не могу его назвать: \ – Tommz

ответ

2

ASP.Net WebForms создает отдельный экземпляр класса вашей страницы для каждой обратной передачи сервера.
Любое состояние экземпляра не сохраняется в HTTP-запросах.

Чтобы сохранить состояние, вам необходимо сохранить его в состоянии ViewState или сеанса.


Кроме того, вы не можете вызывать методы интерфейса, как MessageBox.Show в серверном коде.
Вам необходимо использовать Javascript.

+0

Да, это то, чего я не знал. Как его сохранить? @ MessageBox.Show - я знаю для этого, но в примерном примере я сделал плохой пример. – Tommz

+0

@Tommz: Используйте состояние сеанса или состояние просмотра, в зависимости от того, с чем вы хотите связать. – SLaks