Сведения о вопросе

None

02:27, 3rd August, 2020

Теги

c#   asp.net   asp.net-ajax    

Как я могу передать данные со страницы aspx в модальное всплывающее окно ascx?

Просмотров: 509   Ответов: 3

Я довольно новичок в ASP.NET и пытаюсь узнать, как это делается. Я пришел из фона C#, так что часть кода позади легко, но думать, как веб-разработчик незнаком.

У меня есть страница aspx, которая содержит сетку флажков. У меня есть кнопка, которая кодируется с помощью события Button_Click, чтобы собрать список проверяемых строк и создать переменную сеанса из этого списка. На эту же кнопку ссылается (через TargetControlID) моя страница ascx ModalPopupExtender, которая управляет панелью на странице ascx.

При нажатии на кнопку открывается модальное всплывающее окно, но событие Button_Click никогда не срабатывает, поэтому модальное окно не получает свои данные сеанса.

Поскольку эти две страницы разделены, я не могу вызвать ModalPopupExtender из кода aspx.cs, я не могу добраться до списка флажков из кода ascx.cs, и я не вижу способа заполнить мою переменную сеанса, а затем программно активировать какую-то другую скрытую кнопку или элемент управления, который затем откроет мое модальное всплывающее окно.

Есть какие-нибудь мысли?



  Сведения об ответе

JUST___

20:33, 29th August, 2020

Все это usercontrol(.ascx) file is-это набор элементов управления, которые вы сгруппировали вместе, чтобы обеспечить некоторую повторно используемую функциональность. Элементы управления, определенные в нем, по-прежнему добавляются в коллекцию элементов управления страницы (.аспн) во время lifecylce страницы. ModalPopupExtender использует javascript и dhtml для отображения и скрытия элементов управления на стороне клиента usercontrol. То, что вы видите,-это то, что событие click обрабатывается на стороне клиента ModalPoupExtender, и оно отменяет обратную передачу на сервер. Это стандартное поведение по умолчанию. Вы, конечно, можете получить доступ к коллекции элементов управления страницы из кода позади вашего usercontrol, хотя потому, что все это является частью одного и того же дерева элементов управления. Просто используйте метод FindControl (xxx)любого элемента управления для поиска нужного вам ребенка.


  Сведения об ответе

DAAA

20:09, 2nd August, 2020

После некоторых исследований, последовавших за ответом DancesWithBamboo, я понял, как заставить его работать.
Пример ссылки на мою страницу ascx в пределах моей страницы aspx:

<uc1:ChildPage ID="MyModalPage" runat="server" />

Код aspx-behind для захвата и открытия ModalPopupExtender (с именем modalPopup) будет выглядеть следующим образом:

AjaxControlToolkit.ModalPopupExtender mpe = 
    (AjaxControlToolkit.ModalPopupExtender) 
          MyModalPage.FindControl("modalPopup");
mpe.Show();


  Сведения об ответе

davran

02:54, 29th August, 2020

Извините, но я запутался. Вы не можете вызвать ascx напрямую, так что...

Является ли ваш модальный код, который вы вызываете изнутри той же страницы, как скрытая панель и т. д;

Или это еще одна страница aspx, которую вы вызываете на событие click?


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться