2012-06-20 17 views
-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; 
} 

我在哪裏錯了?無法真正弄清楚。我需要將源頁面中的值傳輸到其他目標頁面,並且我不想使用多個查詢。任何形式的幫助將不勝感激!將文本字段值從源頁面傳輸到多個目標頁面:對象類型投射錯誤

回答

0

Page.PreviousPage

嘗試使用這個屬性,你可以訪問所有原始頁面控件。

TextBox txtName = (TextBox)Page.PreviousPage.FindControl("txtName"); 
txtTPName.Text = txtName.Text; 
+0

你能否提供一個Page.PreviousPage的例子?我的意思是確切的(什麼地方?);因爲我已經嘗試過並且有問題 –

+0

@M Rokon Jaman:查看msdn參考資料:http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx –

+0

How關於那個? –

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(); 
    } 

現在,我可以在任何其他PAG初始化此數據表 並且可以從那裏獲得所需的數據。

相關問題