-1
// SourcePage.aspx 
public partial class SourcePage: System.Web.UI.Page 
{ 
    protected void btnSearch_Click(object sender, EventArgs e) 
    { 
        //...... 
        //...... 

            while (rdr.Read()) 
            { 
                txtName.Text = rdr["Name"].ToString(); 
            } 
            rdr.Close(); 
    } 

    public string GetName 
    { 
        get { return txtName.Text; } 
    } 

    protected void btnServer.Transfer_Click1(object sender, EventArgs e) 
    { 
       Server.Transfer("TargetPage1.aspx"); 
       Server.Transfer("TargetPage2.aspx"); 
    } 
} 

//TargetPage1.aspx   
protected void Page_Load(object sender, EventArgs e) 
{ 
            SourcePage SP; 
            SP = (SourcePage)Context.Handler; // I get runtime error here: unable to cast object of type 'ASP.TargetPage_aspx' to type 'SourcePage' 
            txtTPName.Text = p.GetName; 
} 

我哪里错了?实在想不通。我需要将值从源页面传输到其他目标页面,并且我不想使用多个查询。任何形式的帮助将不胜感激!

4

2 回答 2

0

嘿伙计们,我使用会话变量解决了这个问题,这里是如何..

源页面:代码隐藏:连接后跟随..

SqlDataAdapter sda = new SqlDataAdapter();          
sda.SelectCommand = cmd;         
sda.Fill(dt);          
foreach (DataRow Row in dt.Rows)         
{             
txtSource.Text = Row["Name"].ToString();      
    }  
        Session.Add("sp", dt);  

然后在目标页面:

    DataTable dt = Session["sp"] as DataTable;    
 foreach (DataRow Row in dt.Rows)    
 {      
   txtTarget.Text = Row["Name"].ToString();  
   } 

现在我可以在任何其他页面中初始化这个数据表,并且可以从那里获得所需的数据。

于 2012-06-21T14:52:51.827 回答
0

尝试Page.PreviousPage

使用此属性,您将能够访问所有原始页面控件。

TextBox txtName = (TextBox)Page.PreviousPage.FindControl("txtName");
txtTPName.Text = txtName.Text;
于 2012-06-20T15:35:47.877 回答