我有一个asp.net复选框,在更新面板中将autopostback设置为true。当我选中复选框时,它会显示我想要显示的其他控件。取消选中复选框时,将更新数据库中的值。这一切都很好。
如果我想在取消选中复选框后移动到另一个页面,则会显示一个对话框,询问我是要留在此页面还是离开页面。如何停止显示该对话框?
<asp:UpdatePanel runat="server" ID="upOnProbation" UpdateMode="Conditional">
<ContentTemplate>
<div>
<table>
<tr>
<td>
<asp:CheckBox runat="server" Text="On Probation" ID="chkOnProbation" AutoPostBack="true" ClientIDMode="AutoID" />
</td>
</tr>
<asp:PlaceHolder runat="server" ID="plcProbabtionDates" Visible="false">
<tr>
<td>
Start date
</td>
<td>
<ComponentArt:Calendar runat="server" ID="dtStart" ControlType="Picker" PickerFormat="Short">
</ComponentArt:Calendar>
</td>
</tr>
<tr>
<td>
End date
</td>
<td>
<ComponentArt:Calendar runat="server" ID="dtEnd" ControlType="Picker" PickerFormat="Short">
</ComponentArt:Calendar>
</td>
</tr>
<tr>
<td>
<asp:Button runat="server" ID="btnSave" Text="Save" CssClass="btn" />
</td>
</tr>
</asp:PlaceHolder>
</table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Protected Sub chkOnProbation_CheckedChanged(sender As Object, e As System.EventArgs) Handles chkOnProbation.CheckedChanged
If chkOnProbation.Checked Then
plcProbabtionDates.Visible = True
dtStart.SelectedDate = DateTime.Now
dtEnd.SelectedDate = DateTime.Now.AddMonths(6)
Else
plcProbabtionDates.Visible = False
objCompany.On_Probation = False
objCompany.Save(UserStaffID)
End If
End Sub
答案 0 :(得分:0)
Check this previous answer解释为何会发生这种情况。
基本上当您在网页上有表单时,浏览器会为您触发onbeeforeunload
事件,以确保计算未保存的更改。
上一个问题的答案表明,您可以通过将处理程序设置为null
window.onbeforeunload = null;