2010-04-27 52 views
1

我有一個場景,我動態加載2個用戶控件在網絡表單中,並需要它們一起交互。這裏的代碼:2動態加載之間傳遞數據用戶控件

default.aspx.cs 
ControlA cA = (ControlA)LoadControl("~/controlA.ascx"); 
ControlB cB = (ControlB)LoadControl("~/controlB.ascx"); 
Page.Controls.Add(cA); 
Page.Controls.Add(cB); 

現在的事情是,controlB需要傳遞一個數據到controlA。數據不是來自事件(好的一部分)。當用戶點擊來自controlB的鏈接時,我們從數據庫獲取數據,而我需要傳遞給controlA的是從請求中獲取第一個數據的ID。當然,當用戶點擊controlB中的鏈接時,頁面會做回發。

我看着活動&代表,但我無法讓它工作。這是正確的路嗎?

如果有人可以有線索,這將非常感激!

回答

1

想到的一個快速而髒的方法是聲明第一次獲取數據的ID作爲ControlB的公共屬性,並在您的鏈接回發的處理程序上設置該值,例如controlB 。 在ControlB的事件處理程序:

public void Link_click(object sender, EventArgs e) 
{ 
this.FirstFetchedId = GetValueFromDB(); 
} 

然後在ControlA的預渲染:

protected override void OnPreRender(EventArgs e) 
{ 
ControlB cB = this.Page.FindControl("ControlBId") as ControlB; // either by ID or loop trough controls to find it by type 
var YourIdIsHere = cB.FirstFetchedId; 
base.OnPreRender(e); 
} 
+0

由於拉杜,我給它一個嘗試,似乎對我好! – MissRaphie 2010-04-29 04:42:13

+0

沒有工作... – MissRaphie 2010-04-29 14:32:10

+0

什麼部分沒有工作? – Radu094 2010-04-30 13:07:36