跟一起学visual studio 2005改进.pdf
议题
•跨页投递
•高级缓存技术
什么是跨页投递?
•在ASP.NET1.x中,Web窗体自动回发给它们的宿主页。
即,当用户提交一个窗体时,窗体数据总是提交回包含该
原始窗体的页面。
•在ASP.NET2.0中,Web窗体控件有一个新特性,让开发
人员决定在进行提交操作时将窗体数据发送到何处。
如何实现跨页投递?
•将实现IButtonControl接口的控件配置为发送至不同的目
标页,例如:Button
System.Web.UI.WebControls.IButtonControl
System.Web.UI.WebControls.IButtonControl
{
{
stringPostBackUrl;
stringPostBackUrl;
eventSystem.EventHandlerClick;
eventSystem.EventHandlerClick;
}
}
如何从源页获取信息?
•获取来自页上控件的信息(即由浏览器发送的信息)
–通过Page.PreviousPage属性获得源页的
–默认情况下,PreviousPage属性类型化为Page
–获得源页的后,通常使用FindControl方法来获取控件的信息
–如果源页和目标页位于不同的应用程序中,则无法直接获取页上
控件的值,但可以从Form字典中发送的数据。
(Request.Form[“控件名”])
if(Page.PreviousPage!=null)
if(Page.PreviousPage!=null)
{
{
TextBoxSourceTextBox=(TextBox)Page.PreviousPage.FindControl(TextBox1);
TextBoxSourceTextBox=(TextBox)Page.PreviousPage.FindControl(TextBox1);
if(SourceTextBox!=null)
if(SourceTextBox!=null)
{
{
Label1.Text=SourceTextBox.Text;
Label1.Text=SourceTextBox.Text;
}
}
}
}
如何从源页获取信息?
•FindControl方法在当前名容器中查找控件。如果要查
找的控件位于另一控件内(通常位于模板内),则必须先
获取对该容器的,然后才能在该容器中查找要获取的
控件。
LoginLoginControl=(Login)PreviousPage.FindControl(Login1);
LoginLoginControl=(Login)PreviousPage.FindControl(Login1);
if(LoginControl!=null)
if(LoginControl!=null)
{
{
TextBoxUserName=(TextBox)LoginControl.FindControl(UserName);
TextBoxUserName=(TextBox)LoginControl.FindControl(UserName);
if(UserName!=null)
if(UserName!=null)
{
{
Label1.Text=UserName.Text;