2015-08-21 5 views
2

Я попытаюсь изо всех сил выразить то, что я не понимаю о WebForms. Возможно, кто-то может объяснить это мне ....ASP.NET WebForms WebSite - контролирует изменения своих значений в codebehind, но не на frontend

  1. Я работаю в «довольно больших» WebForms (веб-сайт).
  2. Приложение уже имеет PopUp (который я должен использовать, потому что у меня нет времени, чтобы сделать новый) как MessageBox в Winforms, но:
    • это место в MasterPage.master (я использую его как ((MasterPage) Poup.Show ("блаблабла", yes_no));
    • Я могу добавить кнопки к нему и изменить стиль и т.д.
    • это doenst остановка приложения (например, .ShowDialog() в WinForms), так что у меня есть динамически назначать события onClick и назначать/улавливать их на странице_Load, чтобы перейти к нужному методу в зависимости от ввода пользователем формы. На данный момент я ничего не могу о нем сообщить.

И вот проблема:

В зависимости от вида проверки, если пользователь нажимает кнопку (в форме) - тогда образует realods это значение TextBox.Text и изменения SelectedIndexes и SelectedValues ​​DropDownLists'S.

НО если вы идете в тот же метод с МОЕ Всплывающее окно:

например: Подтверждаете ли вы? ДА/НЕТ

Если нажать нажать любую кнопку, а затем: изменений не видимы в CodeBehind НО Textboxes все еще видим с предшествующими данными на экране, ТАКЖЕ DropDownLists ИМЕЮТ СТАРЫЕ ЦЕННОСТИ ОТДЕЛЬНЫЕ

НО ЕСЛИ ВЫ НАЖМИТЕ КНОПКУ ФОРМЫ (WHATEVER WHICH), ДАЖЕ ЕСЛИ ЭТО МЕТОД НЕТ НИЧЕГО - ВСЕ ФОРМА БУДЕТ «ПЕРЕСМОТРЕТЬ» И ИМЕЮТ ПРАВИЛЬНЫЕ ДАННЫЕ НА ЭКРАНЕ.

(это не о RUNAT = «сервер» или AutoPostBack, я проверил)

Я не событие знаю, что делать это :(

ответ

1

Обновления панели используется для частичное обновление некоторых полей внутри него, вызванные некоторыми триггеры, как кнопки, TextChanged и т.д.

подробнее об обновлении панели выполните следующие действия

0

(не работал с веб-формы события в то время как просто ответ на случай, если никто не делает этого.)

Из любопытства, что произойдет, если в вашем обработчике javascript для вашей кнопки popop вы получитеElementById одну из кнопок формы на главной странице и вызовите «.click () "на нем?

Основная проблема заключается в том, что на главной странице есть форма runat/server с определенными типами поведения, которые передаются с помощью кнопок сервера runat главной страницы, а не с помощью всплывающего JS.

Прост достаточно, чтобы протестировать вышеуказанный подход. Если это сработает, сделайте еще один шаг и попытайтесь выяснить, почему он работает, исходя из того, что делают эти кнопки.

(Если вы не используете JS вообще для всплывающего окна, затем View Source выходной HTML, потому что я уверен, что будет. Возврат этих вызовов помогут вам понять, след от всплывающей кнопки печати, чтобы сформировать представление.)

0

Я, вероятно, ввел вас в заблуждение «OnClick», это НЕ javascript OnClick = «метод()».

Я имею в виду ClickEvent на кнопке (в коде). Для примера. Если форма утверждена я должен сделать:

ViewState["PopUpSelection"] = "yes_no"; 
(MasterPage)PopUp.Show("blabla",yes_no) //loads popup from MasterPage; 
return; 

затем на Page_Load у меня есть:

**if (string)ViewState["PopUpSelection"] == "yes_no" 
{ 
    ButtonConfirmYes.Click += new EventHandler(MyMethod); 
}** 

И если метод «MyMethod» вызывается из кнопки FORM, все "будет идти нормально ".

Если вы вызываете один и тот же метод из всплывающих кнопки: изменения видны на коде, но на экране ничего не происходит, если я не нажать ЛЮБУЮ ФОРМУ КНОПКИ, какой бы она делает