2009-10-29 50 views
3

我在我的網站上有母版頁,並且在母版頁上有一些控制權。 我想處理內容頁面上的母版頁控件事件。母版頁和內容頁中的通信問題

我該怎麼做...?

即使我已經使用屬性這樣一個下拉控制

public DropDownList propertymastercontrol 
{ 
    get 
    { 
     return cmbVendor; //drop down id 
    } 
} 

並給予母版頁這樣的內容頁面上的參考...

<%@ MasterType VirtualPath ="~/MasterPage.master" %> 

後仍然沒能得到任何事件的內容page_load事件的控制..

protected void Page_Load(object sender, EventArgs e) 
    { 
     Master. 
    } 

什麼可以是問題EM ..?

回答

0

我假設page_Load事件在代碼後面的部分。您必須在那裏聲明主頁面文件,以便能夠拉出主頁面的內容。

將這個在上preInit:

this.MasterPageFile = "~/masterPage.master"; //change this to where your master page resides. 
2

我不知道C#,但在VB.NET我已經與這四個步驟來完成它:

  • 添加事件母版後面的代碼,根據需要
  • 一下添加到內容aspx頁面引發這些事件:<%@ MasterType VirtualPath="~/master.Master" %>
  • 添加事件處理程序捕獲事件上的內容頁面代碼隱藏(這個我S其中,事情變得C#和VB.NET)之間非常不同
  • 添加你需要的代碼的事件代碼隱藏

UPDATE:

從你的示例代碼,我可以看到你不引發MasterPage中的事件(您可以響應內容頁面)。我打算舉一個例子,但這個帖子幾乎是一樣的,Pass MasterPage ImageButton event to content Page,另一個SO用戶已經在這裏回答了這個問題。

+0

我試圖提高事件,但它沒有完成。 – 2009-10-29 14:37:10

0

的快速和骯髒的方式是找到在母版,並將其連接起來的控制。你的Page_Load會是這個樣子:

protected void Page_Load(object sender, EventArgs e)  
{ 
    DropDownList cmbVendor = (DropDownList)Master.FindControl("cmbVendor"); 
    cmbVendor.TextChanged += new EventHandler(cmbVendor_TextChanged); 
} 

的清潔方法是讓母版處理下落事件,並提高它自己的事件。 Pass MasterPage ImageButton event to content Page接受的答案解釋瞭如何做到這一點。