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

时间:2014-06-19 08:19:14

标签: javascript jquery asp.net vb.net knockout.js

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

我正在维护一个包含许多用户及其信息的Web应用程序。从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 && 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

上面的代码将页面重定向到details.aspx页面(它也在同一个弹出窗口中打开,看起来并不聪明。)。请为我提供保存详细信息后将关闭update_status_popup.aspx页面的代码。

1 个答案:

答案 0 :(得分:3)

您可以使用RegisterClientScriptBlock

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

使用此代替Response.Redirect;当页面重新加载时,它将向window.close()注入调用,导致窗口关闭。