Как открыть всплывающее окно в ASP.Net с помощью элемента управления HyperLink с помощью внешнего файла javascript?

Использование ASP.Net 2.0

а. На родительской странице ASPX после щелчка по элементу управления HyperLink мне нужно открыть (дочернюю) страницу во всплывающем окне как модальное окно.

б. Затем, когда это всплывающее окно (дочерняя страница) закрывается, мне нужно получить выбор из таблицы данных в этом всплывающем окне и соответствующим образом обновить родительскую страницу.

c. У меня есть код javascript открытого окна в файле javascript.js, который я загружаю следующим образом:

protected void Page_Load(object sender, EventArgs e)
{
  ClientScript.RegisterClientScriptInclude(this.GetType(), "manualequipentryscript", "javascript.js");
  lnkSearchProducts.Attributes.Add("onclick", "LaunchProductSearch();");
}

..не работает ..

Как мне это реализовать?

(Я искал www в течение последних 2 часов и нашел так много результатов, потому что не смог найти ничего конкретного, что могло бы мне помочь.)

С уважением, Боб


person Community    schedule 13.06.2009    source источник
comment
Возможно, вам стоит уточнить, почему код не работает. Какая у вас ошибка ?   -  person Cerebrus    schedule 13.06.2009
comment
Что вы имеете в виду, говоря, что не работает? Выдает ошибку? Если да, то при загрузке страницы или при нажатии кнопки? Пожалуйста, предоставьте разметку, которая отправляется клиенту.   -  person Serhat Ozgel    schedule 13.06.2009


Ответы (1)


Первое, что нужно понять, это то, что браузеры обычно не поддерживают настоящие модальные всплывающие окна (за заметным исключением IE). Браузеры на основе Mozilla позволяют указать, что окно будет оставаться на переднем плане, но это нельзя считать модальным. В этой статье подробно рассказывается об этом.

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

Во-вторых, чтобы передавать значения из всплывающего окна в родительское окно, вы можете использовать методы Javascript или код на стороне сервера. Первый метод предполагает сначала доступ к родительскому окну (с использованием свойства window.opener), а затем получение ссылок на элементы в этом родительском окне. См. Пример в этой статье.

Метод на стороне сервера потребует от вас сохранения значений состояния, а затем принудительного обновления Javascript родительского окна (с использованием window.opener.location.reload();), чтобы эти значения были загружены.

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

person Cerebrus    schedule 13.06.2009