2010-01-06 2 views
8

Что я пытаюсь сделать, так это создать многократно используемый код, который может писать модальное всплывающее окно, либо через javascript, либо с помощью инструментария ajaxcontrol, все из кода позади.ASP.NET модальное всплывающее окно, полностью из кода позади?

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

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

Если у кого есть какие-либо хорошие ссылки или советы для этого, будем признательны!

Спасибо!

EDIT: Я знаю, как использовать инструментарий управления ajax и его элементы управления, и я знаю, как создавать окна входа в систему, я спрашиваю, как сделать это целиком из кода, стоящего за пределами класса, который не зависит от его реализация

+0

Я не хочу, чтобы ввести свои учетные данные снова. Не могли бы вы просто дать мне роль администратора и обработать авторизацию в вашем коде? – DOK

+0

@ DOK: Существуют сценарии, в которых бизнес диктует, что пользователь должен снова предоставить учетные данные как своего рода цифровое подписание. Это довольно часто встречается в медицинских/клинических системах. –

+0

Wim ударил ноготь по голове, программирование на здоровье: D – Jimmy

ответ

3

Написать контроль сервера или asp.net управления расширитель как Ajax управления инструментарий делает.

Лучшее, что вы можете сделать, это загрузить источник AjaxControlToolkit from CodePlex и изучить источник ModalPopup в этом.

+0

не думал об этом, заглянет в него – Jimmy

+0

Это выглядит довольно многообещающе, спасибо большое, я использую следующий учебник и до сих пор так хорошо: http://www.asp.net/learn/Ajax-Control-Toolkit/tutorial-49-cs.aspx – Jimmy

+0

+1 для ссылки на источник – Maslow

0

modalpopupextender в наборе инструментов управления Ajax прост в использовании, плюс он имеет метод сервера или клиента для отображения всплывающего окна (в прошлых версиях у меня были проблемы с методом на стороне сервера, но он, возможно, был разрешен в текущей версии).

Вы можете поместить modalpopupextender внутри главной страницы, и создать метод JS в главной странице вы можете позвонить, чтобы вызвать модальный всплывающий расширитель, как:

функции showPopup() { вара модальных = $ найти ("<% = mpe1.ClientID%>"); modal.show(); }

Содержимое всплывающего окна можно заменить с помощью javascript, поскольку вы контролируете этот контент.

2

Еще одна вещь, которую вы можете сделать, - просто вызвать всплывающее окно, которое будет отображаться из кода, находящегося за файлом. Как известно, расширитель должен быть каким-то образом связан с целевым элементом управления, просто добавьте фиктивный элемент управления в виде скрытого текстового поля (на самом деле, чтобы скрыть элемент управления, сделайте это из asp-файла, поскольку style = "display: none" не из (visible = false), иначе это не сработает), а затем просто вызывается из кода за расширителем следующим образом:

DummyTextBox_ModalPopupExtender.Show();

Вы можете вызвать его в page_load или с помощью любого другого триггера.

Не нужно javascript ни на стороне клиента, ни на стороне сервера. Xds.

0

Добавить BehaviorID="my_cool_id" в свой modalpopup удлинитель и добавить к любой функции сервера

ScriptManager.RegisterStartupScript(Page, this.GetType(),"id","function pageLoad(){$find('my_cool_id').show();}",true); 
Смежные вопросы