我是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页面的代码。
答案 0 :(得分:3)
您可以使用RegisterClientScriptBlock
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(),"CloseWindowScript","window.close();",True)
使用此代替Response.Redirect
;当页面重新加载时,它将向window.close()注入调用,导致窗口关闭。