2015-03-15 2 views
0

Я пишу приложение в asp.net (vb), у меня проблема с тем, что значение textboxvalue устанавливается до того, как пользователь открыл окно, открытое было ли способ предотвратить это?Запуск кода после закрытия окна

Sub btnSelectDate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSelectDate.Click 

    Dim Window As String 
    Window = " window.open('About.aspx', 'MsgWindow', 'width=500, height=500'); " 

    ClientScript.RegisterClientScriptBlock(Me.GetType, "date", Window, True) 

    textboxvalue.Text = "hello" 

    Page_Load() 



End Sub 

ответ

0

Если вы хотите установить текст textboxvalue после того, как всплывающее окно закрыли, вы можете сделать это в коде клиента (см Capture the close event of popup window in JavaScript):

Dim jsCode As String 
    jsCode = "var wnd = window.open('About.aspx', 'MsgWindow', 'width=500, height=500'); wnd.onbeforeunload = function() { document.getElementById('textboxvalue').value = 'Hello'; };" 
    ClientScript.RegisterClientScriptBlock(Me.GetType, "date", jsCode, True) 

Здесь я предполагаю, что textboxvalue является фактическим идентификатором TextBox в визуализированном HTML.

UPDATE - Чтобы обработать нажатие кнопки в коде клиента:

<asp:Button ID="btnSelectDate" runat="server" OnClientClick="ProcessSelectDate(); return false;" /> 

<script> 
    function ProcessSelectDate() 
    { 
     var wnd = window.open('About.aspx', 'MsgWindow', 'width=500, height=500'); 
     wnd.onbeforeunload = function() { document.getElementById('textboxvalue').value = 'Hello'; var form = document.forms['form1']; form.submit(); }; 
    } 
</script> 

Где form1 это идентификатор формы.

+0

Могу ли я вызвать page_load в javascript тоже? – ManWithNoName

+0

Чтобы вызвать код на стороне сервера, вам необходимо отправить форму или запустить некоторую команду AJAX (я не очень хорошо знаком с AJAX). – ConnorsFan

+0

Кстати, если все сделано в клиентском коде, вы можете полностью исключить серверную процедуру btnSelectDate_Click и вместо этого использовать атрибут OnClientClick для btnSelectDate. – ConnorsFan

0

Попробуйте это:

1- В файле сценария, который закрывает окно добавить следующий код

window.opener.location.href = "YouPage?FromPopup=1"

2- из окна проверки Родитель

Request.QueryString["FromPopup"] 

где вы можете добавить код

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