当用户离开页面时,它再次触发Page_Load事件。我怎么能在code_behind中告诉你发生了这种情况,这样可以避免运行自定义函数,因为Page_Load中的代码在离开页面时并不真的需要运行?
答案 0 :(得分:2)
当用户离开页面时,它会再次触发Page_Load事件
离开页面是什么意思?关闭浏览器或单击浏览器上的“返回”按钮?或者转移到另一个页面?在加载页面上或在同一页面上发生回发时,会触发Page_Load
方法,但不会离开它。
在开始任何操作之前,您可以(并且应该)确保客户端仍然连接并使用HttpResponse.IsClientConnected
属性。
当满足以下条件时,IsClientConnected属性返回false:
http://msdn.microsoft.com/en-us/library/system.web.httpresponse.isclientconnected.aspx
修改强>
切换标签通常会触发正常的回发,以检测您应该使用的标签:
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostback)
{
//this is first load of this page
}
}
答案 1 :(得分:1)
如果我理解正确,您正在寻找IsPostBack属性:
private void Page_Load() { if (!IsPostBack) { // Any code here will only run the first time the page is loaded } }