在回发时,如何检查哪个控件导致Page_Init事件中的回发.
protected void Page_Init(object sender, EventArgs e)
{
//need to check here which control cause postback?
}
Run Code Online (Sandbox Code Playgroud)
谢谢
问题#1
我想知道我什么时候应该使用:
Session.Abandon() //当我在跟踪期间和调用它之后使用它时 - 我发现会话仍然有一个值.
什么时候我应该使用:
我应该何时使用每种特定方法?
我在页面加载中检查会话是否不等于null.如果session等于null,我想清除会话并重定向到登录页面?
我应该使用这样的东西:
private void initSession()
{
Session.Clear();
Session.Abandon();
Response.Redirect("LoginPage.aspx");
}
Run Code Online (Sandbox Code Playgroud) 我最近遇到了一些检查的代码,Page.IsCallBack
但我不确定它有什么不同Page.IsPostBack
.任何人都可以开导我吗?
编辑:它们是互斥的还是在特定情况下可以同时发生?
Response.Redirect()是否导致当前运行的方法中止?或者Response.Redirect()之后的代码也执行吗?
(也就是说,在Response.Redirect之后是否需要返回/退出Sub?)
所有 Page_Load
事件完成后是否会触发事件?
我怎么能有一个以上
Page_Load
?
当您有用户控件时.
在我的页面可以渲染之前,我需要我的页面(以及所有嵌入式控件)通过完成他们的Page_Load
事件来初始化自己.
当然,问题是如果我把代码放在我的页面Page_Load
处理程序中:
MyPage.aspx
--> Page_Load
---> DoSomethingWithUserControl()
UserControl1.ascx
--> Page_Load
---> initialize ourselves now that viewstate has been restored
Run Code Online (Sandbox Code Playgroud)
然后我开始UserControl1
在准备好之前访问我的控件.
我需要一种方法来在所有Page_Load
事件被触发后运行代码,但在任何回发事件(例如Click事件)被触发之前:
MyPage.aspx
--> Page_Load
UserControl1.ascx
--> Page_Load
---> initialize ourselves now that viewstate has been restored
MyPage.aspx
--> Page_AfterLoad
---> DoSomethingWithUserControl()
Run Code Online (Sandbox Code Playgroud)
查看MSDN中的页面生命周期,看起来在完成所有Page_Loads 后无法引发事件:
有没有一种方法后,引发后,所有Page_Loads已经完成?
我有以下PerformanceFactsheet.aspx.cs页面类
public partial class PerformanceFactsheet : FactsheetBase
{
protected void Page_Load(object sender, EventArgs e)
{
// do stuff with the data extracted in FactsheetBase
divPerformance.Controls.Add(this.Data);
}
}
Run Code Online (Sandbox Code Playgroud)
FactsheetBase定义为
public class FactsheetBase : System.Web.UI.Page
{
public MyPageData Data { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
// get data that's common to all implementors of FactsheetBase
// and store the values in FactsheetBase's properties
this.Data = ExtractPageData(Request.QueryString["data"]);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是FactsheetBase的Page_Load没有执行.
谁能告诉我我做错了什么?有没有更好的方法来获得我追求的结果?
谢谢
有人要求我在一段时间的访谈中解释ASP.NET页面生命周期.我确实向他解释过,但他对我的回答并不满意.有人可以向我解释生命周期吗?
我有一个aspx,里面有一个ascx.从简短的测试中我看到aspx的PageLoad在用户控件的PageLoad之前被调用,但OnInit则相反.
有人知道事件的顺序是什么(页面与其中的用户控件相比)
谢谢
我刚刚开发了我的第一个xamarin.forms应用程序.我对xamarin.forms很兴奋,但我想念几个事件.
在xamarin.forms ContentPage中是否有任何页面生命周期事件?
我知道这两个:
protected override void OnAppearing()
{
}
protected override void OnDisappearing()
{
}
Run Code Online (Sandbox Code Playgroud)
但OnAppearing()事件只触发一次.在Android上,当我按下开始按钮并返回到我的应用程序时,此事件不会再次触发.
是否有解决方法(如WindowsPhone页面中的OnNavigatedTo)?
谢谢.
我知道它会在Load之前的某个时间发生,但在什么事件中呢?