我正在开发一个类似向导的页面,我依靠跨页回发在它们之间导航。
我需要能够在上一页上触发Load事件,以便保存页面的表单数据。
我被告知,对于这种情况,我所要做的就是访问目标页面中的PreviousPage属性,这会触发上一页的加载事件但由于某种原因,这似乎不是工作
如果PreviousPage属性不为null,我还能做些什么来显式触发previouspage上的load事件?
感谢您的帮助,
永
答案 0 :(得分:1)
您是否考虑将上一页加载中正在执行的持久性逻辑移动到页面上的方法中?
这样你就可以点击:
if(PreviousPage != null)
PreviousPage.DoThatSavingThing();
显然你需要输入它来获取你添加的具体方法,除非你将它们添加到所有页面。
答案 1 :(得分:0)
这对我来说听起来有点混乱,但如果您想要访问数据,最好将这些数据保存到您可以轻松访问的内容中,例如ASP.NET会话缓存。因此,不是回到以前导航的页面来获取数据,而是在第一次到达第一页时缓存数据,然后当用户导航到第二页时,它将可以访问该信息。 / p>
答案 2 :(得分:0)
要添加 - 我使用两种获取“强类型”前一页的方法进行了测试。
添加了对目的地的引用:
在目标位置添加了PreviousPage指令:
访问目标中的PreviousPage属性时,会在上面触发Load事件 PreviousPageName页面(来源)。
示例(假设在PreviousPageName(源页面)上有一个名为Test的公共属性):
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
//Using a reference, you have to cast:
PreviousPageName x = (PreviousPageName)PreviousPage;
string test = x.Test;
//Using the PreviousPage directive, you do not need to cast:
string test2 = PreviousPage.Test
}
}