指定控件的 PostBackUrl 属性,可以将控制的回发定位到另一个Web页中,而且该页面不局限于同一Web项目。也就是说,我可以在我的一个页面中,使用某个控件,而将响应该控件的事件放在另一个页面或者另一个Web项目中。
目标页中使用"Page.PreviousPage"引用源页面,并可以通过FindControls找到该页面中的某个控件。
也可以将Page.PreviousPage强制类型转换成源页面类后,引用其公共属性。这招就厉害了,实现WinForm的对话框就不需要再用Session或Cookie来保存数据了,也不用去花力气维护IE窗口的返回值。
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
这条语句放在页面HTML头部,可以强类型源页面,不过用上面的代码强制转换可能更方便。
"PreviousPage.IsCrossPagePostBack" 属性可以在目标页代码中判断本次执行是否是因跨页发送引起。
PS: Server.Transfer 实现服务端转向,目标页中也可以使用PreviousPage属性。