2013-05-29 2 views
0

В настоящее время у меня есть событие нажатия кнопки ASP.Net, которое выполняет некоторые действия (включая переменные сеанса обмена) до регистрации нового сценария запуска. Как есть, когда пользователь нажимает кнопку, их блокировщик всплывающих окон блокирует всплывающее окно, даже если оно было технически вызвано пользовательским событием; Я предполагаю, что браузер не видит этого.Всплывающее окно с кнопкой ASP.Net Нажмите, что не заблокировано блокировщиком всплывающих окон

protected void ContinueButton_Click(object sender, EventArgs e) 
{ 
    if (agreement.Checked) 
    { 
     string eid = Request.QueryString["eid"]; 
     Session["TestAgreement"] = "Agreed"; 
     openNewWindow("Exams/exam.aspx?id=" + courseCode, "height=760, width=1000, status=yes, toolbar=no, menubar=no, location=no, scrollbars=1"); 
    }   
} 
private void openNewWindow(string url, string parameters) 
{ 
    ClientScript.RegisterStartupScript(this.GetType(), "Exam", String.Format("<script>window.open('" + url + "', '', '" + parameters + "');</script>")); 
} 
+0

Добавить исключение из блока рекламы для своего сайта. – AAlferez

+0

вы также можете заменить кнопку ссылкой и установить target = "_ blank". это откроет новое окно и отправит запрос из нового окна, избегая блокировки всплывающих окон. –

+0

@ AnnArbor87 - Я не хочу, чтобы все мои пользователи добавляли исключение – jpsnow72

ответ

2

AjaxControlToolkit работает хорошо для такого рода вещи.

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx

его до сих пор в рамках asp.net, так что вы все равно получите всю вашу сторону сервера благость, и вы всегда можете поп UserControl внутри него, так что вы можете рассматривать его как отдельную «страница»

помните, что ваш cclientidmode на ваших объектах статичен или предсказуем, если вы хотите ударить их со своей стороны.

+0

забыл упомянуть, также возможно вывести его с сервера, что делает его немного более низким, чем просто всплывающее окно клиента, например jquery – Crudler

+0

Спасибо! Это то, что мне нужно – jpsnow72

+0

Полный пакет действительно приятный. много классных игрушек. Кстати, у DevExpress есть приятный всплывающий материал asp.net, но он немного дорогой. – Crudler

0

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

Проще было бы, чтобы использовать Jquery Диалог: модальный всплывающее

http://api.jqueryui.com/dialog/

+0

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

Смежные вопросы