首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

PostBackUrl如何用

2011-12-27 
PostBackUrl怎么用啊ResultPage.aspx%@PageLanguage C# AutoEventWireup true CodeFile ResultPa

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

热点排行