如何在asp.net和vb.net web应用程序中保存后关闭弹出窗体

How to close a popup form after saving in asp.net and vb.net web application

本文关键字:net 保存 窗体 应用程序 asp web vb      更新时间:2023-09-26

我是asp.net和vb.net的新手。

我正在维护一个包含许多用户及其信息的web应用程序。从列表中。Aspx页面,如果有人点击列表中的任何个人名称,它会转到另一个名为update_status的页面。Aspx,其中包含特定用户的信息。此页面生成一个表单,我们可以通过单击该表单中的更新按钮来更新有关该用户的信息。单击更新按钮后,它保存更新并返回到详细信息。aspx页面。

现在这个update_status。Aspx页面转换为弹出式页面,并重命名为update_status_popup.aspx

现在的要求是关闭弹出窗口更新后,当有人点击更新和不重定向到详细信息。aspx页

我怎么能那样做呢?该网页是用asp.net和vb.net构建的

我包括下面的代码。

下面的链接打开名为update_status_pop .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 && offeredSalary() < 0) || (statusId() == 11 && finalSalary() < 0) || (feeType() == 2 && introductionFee() <= 0 && statusId() == 11 && agencyApp() == 'True')) ? false : true">Update</button>
            <a class="btn" href="javascript:window.close();">Close</a>
        </div>

有两个按钮UPDATE和CLOSE。关闭按钮也关闭窗口,但客户端要求在更新后自动关闭表单。

当前btnUPDATE的VB.net代码如下

 Protected Sub btnUpdate_ServerClick(sender As Object, e As EventArgs) Handles btnUpdate.ServerClick

    If comNewStatus.Items.Count <= 0 Then
        Response.Redirect("details.aspx?i=" & 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: " & txtOfferedSalary.Value)
            ElseIf newStatus = 11 Then
                VacancyApplication.AddNote("Final salary: " & 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:" & txtFinalSalary.Value}
                vh.Save()
            ElseIf newStatus = 12 Then
                VacancyApplication.StartDate = CDate(txtStartDate.Value)
                VacancyApplication.AddNote("Start date: " & 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:" & 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=" & VacancyApplication.ID & "&c=" & VacancyApplication.StatusID)

    End If
    Response.Redirect("details.aspx?i=" & VacancyApplication.ID & "&c=" & VacancyApplication.StatusID)
End Sub
End Class

以上代码将页面重定向到详细信息。Aspx页面(也在相同的弹出窗口中打开,看起来不聪明。)请建议我的代码将关闭update_status_popup。保存详细信息后的Aspx页面

您可以使用RegisterClientScriptBlock

Page.ClientScript.RegisterClientScriptBlock(Me.GetType(),"CloseWindowScript","window.close();",True)

用这个代替Response.Redirect;它将在页面重新加载时注入对window.close()的调用,导致窗口关闭。