У меня есть некоторый код яваскрипта на моей главной странице, которая открывает всплывающее окно при нажатии на ссылку на:Как закрыть модальное окно после сохранения в ASP.Net WebForms
<script language="javascript">
function OpenResidentialAddressWin(subscriberContactRelationGid, routeId, btn) {
window.showModalDialog("SubscriberResidentialAddress.aspx" + BuildQueryStringValuesForSubscriber(subscriberContactRelationGid, routeId, returntxtReceiptDate().value), this, strWindowFeatures + ";scroll:no;dialogWidth:442px;dialogHeight:350px");
location.href = location.href;
}
</script>
Таким образом, приведенный выше код открывает страницу SubscriberResidentialAddress.aspx в модальном окне (а также передачу ряда переменных на эту страницу)
Теперь эта страница устроена так, что она отображает или редактирует информацию. (Они находятся в отдельных divs, которые отображаются или скрыты, зависят от того, какие кнопки только что были нажаты в окне).
В настоящее время после того, как пользователь делает сохранение информации на странице, он переключается в режим отображения. Вместо этого я хочу полностью закрыть модальное окно и перезагрузить главную страницу.
Коллега предположил, что я использую литеральный контроль на странице aspx модального окна и записываю javascript в него после успешного сохранения. Таким образом, я поместил следующее в головной части страницы SubscriberResidentialAddress.aspx:
<asp:Literal runat="server" ID="litCloseWind"></asp:Literal>
А затем в код в функции, которая вызывается, когда экономия осуществляется
protected void btnAddSave_Click(object sender, EventArgs e)
{
////// code related to saving
if (status.IsSuccessful)
{
litCloseWind.Text = "<script>this.close()</script>";
Response.Redirect(Request.Url.AbsoluteUri, false);
}
}
У меня есть попробовал выше, а также litCloseWind.Text = "window.close()"; но ни одна из них не была успешна в закрытии модального окна после сохранения.
Является ли этот план логически обоснованным, и я только что сделал ошибку где-то или это был плохой способ сделать это для начала?
Я не говорю, что это была плохая идея, чтобы начать с, я не знаю точно, что вам нужно сделать, но я бы посоветовал вам чтобы не создавать всплывающие окна, которые работают с фактическими окнами браузера, а скорее делают плавающие элементы 'div' отображаться поверх других вещей просто потому, что очень вероятно, что какой-то браузер где-то (и я говорю о' Chrome', 'Firefox', и т. д.) будут работать совсем по-другому, чем вы экспериментировали при разработке приложения в IE (например: они не позволят всплывать в первую очередь) –
Спасибо за совет. Это некоторая унаследованная система, где это используется повсюду для внутреннего сайта, который будет отображаться только в Internet Explorer. Я уверен, что в этом есть много вещей, которые не были выполнены правильно, но перепроектировать его сейчас, к сожалению, не является приоритетом :) – Sperick