PostBackUrl怎么用啊
ResultPage.aspx
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "ResultPage.aspx.cs " Inherits= "ResultPage " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml ">
<head runat= "server ">
<title> 无标题页 </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>
<asp:TextBox ID= "TextBox1 " runat= "server "> </asp:TextBox>
<asp:Label ID= "labelResult " runat= "server " Text= "Label "> </asp:Label>
<asp:Button ID= "Button1 " runat= "server " Text= "Button " PostBackUrl= "~/ResultPage.aspx " OnClick= "Button1_Click " />
</div>
</form>
</body>
</html>
ResultPage.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class ResultPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
labelResult.Text = ((TextBox)PreviousPage.FindControl( "TextBox1 ")).Text;
}
catch
{
labelResult.Text = "????????? ";
}
}
}
怎么无论文本框填什么都是 "????????? "呢
[解决办法]
页首加上: <% @previousPageType virtualPath= "~/source.aspx "%>
source.aspx换成来源页地址
[解决办法]
另外要在来源页button的PostBackUrl属性加入ResultPage.aspx
地址
[解决办法]
PostBackUrl 是为了解决1.1中只能一个SERVER FORM还不能修改ACTION的问题加入的
为了让PostBackUrl能识别POST页的控件,所以需要你指定previousPage页
[解决办法]
1。
是不是源页面和提交页面不能是同一页呢
我分开两页的话就没有问题了
看来PostBackUrl不能用在同一页上
是不是呢
===========
都同一页了,还设置 PostBackUrl 做什么? 多此一举
2。
try
{
labelResult.Text = ((TextBox)PreviousPage.FindControl( "TextBox1 ")).Text;
}
catch
{
labelResult.Text = "????????? ";
}
=======
滥用 try-catch 既然你不知道发生什么错误,就应该 throw 出来, 这里应该 throw 出来的是
NullReferenceException, 即 PreviousPage == null
3。
当你用 PostBackUrl 设置为本页,想实现跨页提交,是做不到的,这里测试可以看到这当前页的PreviousPage 始终为 null