#javascript #jquery #asp.net #vb.net #knockout.js
#javascript #jquery #asp.net #vb.net #knockout.js
Вопрос:
Я новичок в asp.net и vb.net .
Я поддерживаю веб-приложение, которое содержит много пользователей и их информацию. Со страницы list.aspx, если кто-то нажимает на любое отдельное имя из списка, он переходит на другую страницу с именем update_status.aspx, которая содержит информацию о конкретном пользователе. На этой странице создается форма, в которой мы можем обновить информацию об этом пользователе, нажав кнопку обновить в этой форме. После нажатия кнопки обновления обновление сохраняется и перенаправляется на страницу details.aspx.
Теперь эта страница update_status.aspx преобразуется во всплывающую страницу и переименовывается в update_status_popup.aspx
Теперь требуется закрыть всплывающее окно после обновления, когда кто-то нажимает кнопку обновить, и не перенаправлять на страницу details.aspx
Как я могу это сделать. Веб-страница построена с asp.net и vb.net
Я включаю приведенные ниже коды.
Следующая ссылка открывает всплывающее окно с именем Update_status_popup.aspx
<a class="hover-glow" style="cursor:pointer;" data-placement="bottom" rel="tooltip" title="change status" data-bind="click: $parent.openPopup"><i class="icon icon-random"></i> </a>
В файле update_staus_popup.aspx код кнопки обновления
<div class="btn-wrapper">
<button runat="server" id="btnUpdate" class="btn" data-bind="enable: ((statusId() == 10 amp;amp; offeredSalary() < 0) || (statusId() == 11 amp;amp; finalSalary() < 0) || (feeType() == 2 amp;amp; introductionFee() <= 0 amp;amp; statusId() == 11 amp;amp; agencyApp() == 'True')) ? false : true">Update</button>
<a class="btn" href="javascript:window.close();">Close</a>
</div>
есть две кнопки ОБНОВИТЬ и ЗАКРЫТЬ. Кнопка закрытия также закрывает окно, но клиенту требуется автоматически закрыть форму после обновления.
настоящее VB.net код для btnUPDATE выглядит следующим образом
Protected Sub btnUpdate_ServerClick(sender As Object, e As EventArgs) Handles btnUpdate.ServerClick
If comNewStatus.Items.Count <= 0 Then
Response.Redirect("details.aspx?i=" amp; Request("i"))
End If
Dim previusStatus = VacancyApplication.Status, _
newStatus = CInt(comNewStatus.Value)
If newStatus <> VacancyApplication.StatusID Then
Try
If newStatus = 10 Then
VacancyApplication.OfferedSalary = CType(txtOfferedSalary.Value, Decimal)
VacancyApplication.AddNote("Offered: " amp; txtOfferedSalary.Value)
ElseIf newStatus = 11 Then
VacancyApplication.AddNote("Final salary: " amp; txtFinalSalary.Value)
Vacancy.FinalSalary = CDec(txtFinalSalary.Value)
Vacancy.Save()
If Vacancy.FeeType = 1 AndAlso CDec(txtFinalSalary.Value) > 0 Then
Vacancy.CalculateFees()
Vacancy.SaveFees()
End If
Dim vh As New VacancyHistory With {.VacancyID = VacancyApplication.VacancyID, .Description = "Final salary added. Amount:" amp; txtFinalSalary.Value}
vh.Save()
ElseIf newStatus = 12 Then
VacancyApplication.StartDate = CDate(txtStartDate.Value)
VacancyApplication.AddNote("Start date: " amp; txtStartDate.Value)
End If
If Vacancy.FeeType = 2 AndAlso CDec(txtFinalIntroductionFee.Value) Then
Vacancy.SetFinalIntroductionFee(CDec(txtFinalIntroductionFee.Value))
Dim vh As New VacancyHistory With {.VacancyID = VacancyApplication.VacancyID, .Description = "Introduction fee added as per variable fee type. Fee:" amp; txtFinalIntroductionFee.Value}
vh.Save()
End If
VacancyApplication.Save()
VacancyApplication.UpdateStatus(CInt(comNewStatus.Value), True, False)
Catch ex As Exception
_logger.Fatal(ex.Message)
Response.Redirect("/E4/Error/500.aspx")
End Try
If Not String.IsNullOrWhiteSpace(txtNote.Value) Then VacancyApplication.AddNote(txtNote.Value.Trim())
_logger.Fatal("details.aspx?i=" amp; VacancyApplication.ID amp; "amp;c=" amp; VacancyApplication.StatusID)
End If
Response.Redirect("details.aspx?i=" amp; VacancyApplication.ID amp; "amp;c=" amp; VacancyApplication.StatusID)
End Sub
End Class
Приведенный выше код перенаправляет страницу на страницу details.aspx (которая также открывается в том же всплывающем окне и не выглядит умной.). Пожалуйста, предложите мне код, который закроет страницу update_status_popup.aspx после сохранения деталей.
Ответ №1:
Вы можете использовать RegisterClientScriptBlock
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(),"CloseWindowScript","window.close();",True)
Используйте это вместо Response.Redirect
; он будет вводить вызов window.close() при перезагрузке страницы, что приведет к закрытию окна.