我正在处理类似向导的页面集,并且我依靠跨页面回发来在它们之间导航。ASP.NET如何在跨页面回发的前一页上提高加载事件
我需要能够触发上一页的Load事件,以保存页面的表单数据。
我被告知,对于这种情况我只需要访问目标页面中的PreviousPage属性,这将触发前一页的加载事件,但由于某种原因,这似乎并不正在工作。
如果PreviousPage属性不为空,是否还有其他操作可以显式触发前一页上的加载事件?
感谢您的帮助,
勇
我正在处理类似向导的页面集,并且我依靠跨页面回发来在它们之间导航。ASP.NET如何在跨页面回发的前一页上提高加载事件
我需要能够触发上一页的Load事件,以保存页面的表单数据。
我被告知,对于这种情况我只需要访问目标页面中的PreviousPage属性,这将触发前一页的加载事件,但由于某种原因,这似乎并不正在工作。
如果PreviousPage属性不为空,是否还有其他操作可以显式触发前一页上的加载事件?
感谢您的帮助,
勇
您是否考虑将您在上一页加载过程中执行的任何持久性逻辑移动到页面上的方法中?
这样,你可以只打:
if(PreviousPage != null)
PreviousPage.DoThatSavingThing();
显然,你需要键入它让你添加,除非你添加的那些所有页面的具体方法。
这听起来有点混乱给我,但如果你想要的数据访问,这是最好的数据保存到的东西,你可以轻松搞定,就像ASP.NET会话缓存一样。因此,您不必为了获取数据而返回先前导航的页面,而是在您第一次到达第一页时缓存数据,然后当用户导航到第二页时,它将有权访问该信息。
添加 - 我使用两种获取“强类型”前页的方法进行测试。
添加到目标的引用:
添加于目的地的|上一页指令:
当访问在目的地PreviousPage属性,Load事件被发射到 PreviousPageName页面(来源)。
实例(假设有一个名为PreviousPageName(来源页面上的测试的公共属性)):
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
}
}
不知道为什么我没有想到的是,伟大的想法。谢谢 :) – yogibear 2010-02-21 22:14:37