2012-02-29 92 views
0

我創建一個文本框和在報頭(用戶控制)提交按鈕包括在主頁訪問文本框的值來.aspx.vb

和我想使用該文本框的值點擊我的.aspx.vb頁面提交後。

我怎樣才能訪問,因爲VB頁面先加載,然後主頁面加載?

回答

0
  • 從用戶控件傳達給網頁的最佳方式/母版是
  • 從母版進行通信,以網頁的最佳方式是使用事件

在這條路上你不硬連接用戶控件使用事件與他們的頁面/ MasterPages和頁面與它的主。

事件添加到您的用戶控件是當用戶點擊該按鈕,例如提出:

在用戶控件MyControl類型:

public delegate void SubmittedHandler(MyControl ctrl); 
public event SubmittedHandler Submitted; 

protected void BtnCLick(object sender, EventArgs e) { 
    Submitted(this); 
} 

然後在你的母版的處理程序添加到這個事件,處理它,並再次提高法師的事件:

師父的代碼隱藏:

public delegate void MyControlSubmittedHandler(MyControl ctrl); 
public event MyControlSubmittedHandler ControlSubmitted; 

protected void Page_Init(Object sender, EventArgs e) { 
    this.MyControl1.Submitted += MyControlSubmitted; 
} 

protected void MyControlSubmitted(MyControl sender) { 
    ControlSubmitted(sender); 
} 

然後,一個處理這一事件添加到您的網頁:

在你的頁面:

protected void Page_Init(object sender, EventArgs e) { 
    ((SiteMaster)Master).ControlSubmitted += MasterControlSubmitted; 
} 

protected void MasterControlSubmitted(MyControl sender){ 
    // do whatever you need to do 
} 

如果你只需要在頁面訪問TextBox,你不需要處理click - 事件,你也可以使用屬性來實現這一點:

  • 添加公共財產fe MyControlText在您的UserControl中獲取/設置TextBox.Text屬性
  • 添加一個公共屬性f.e. MyControlTextMaster是獲取/設置你的用戶控件的屬性MyControlText
  • 現在,你可以得到/以這種方式設置了您的頁面這個屬性: ((SiteMaster)Master).MyControlText = "Hello World";
0

文本框瓦爾=(文本框)this.Master。的FindControl( 「TextBoxID」);