2011-05-17 87 views
4

我有一個母版頁,我有一個鏈接按鈕。在其中一個內容頁面中,我需要隱藏linkbutton並用圖像按鈕替換。圖像按鈕的點擊事件處理程序應該與母版頁中的鏈接按鈕的點擊事件完全相同。那麼是否有一種方法可以通過Content頁面中的圖像按鈕單擊事件處理程序調用母版頁鏈接按鈕單擊事件處理程序?ASP.Net:如何從內容頁面事件處理程序調用母版頁事件處理程序?

我已經研究並似乎有很多的情況下,母版頁要調用的事件處理程序中的內容頁面...

任何INOUT將高度讚賞。

感謝

回答

6

在您的母版頁的代碼中,將事件處理程序的protected關鍵字替換爲public。

public void LinkButton1_Click(object sender, EventArgs e) 
    { 
     //Do Stuff Here 
    } 

在內容頁中使用的主型指令

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

在代碼後面的內容頁面調用主事件處理程序如下

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
    { 
     this.Master.LinkButton1_Click(sender, e); 
    } 

注意的代碼是C# 。

我尋找到更多的直接調用母版頁的事件處理程序

+0

感謝您的答覆...是啊,這是我在找什麼......我是從內容頁面調用其他母版頁面方法,讓它們公開......我怎麼沒有考慮將事件公諸於衆......對不起,我是新來的SF ..所以我不能給這個問題的答案是 – shazia 2011-05-19 16:44:36

+0

沒問題,只要不要忘記當你獲得足夠的聲望時,儘管你可能有足夠的代表通過點擊嘀嗒聲來接受,但卻不足以支持。我雖然錯了,但:-) – 2011-05-19 22:16:23

0

如果你的母版頁MyMaster,讓這樣的特性:

Public Shadows ReadOnly Property Master() As MyMaster 
    Get 
     Return CType(MyBase.Master, MyMaster) 
    End Get 
End Property 

那麼無論你想在母版頁訪問,確保它是公共的,你就可以訪問它通過:

Master.xxxx 
4

還有@ Master指令(MSDN Article)。當從Master屬性訪問母版頁時,此方法提供了一種創建對ASP.NET主頁的強類型引用的方法。

結果如所述的強類型,並且不需要施放。

用法示例:

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

使用此指令實際上產生相同的代碼@斯科特的實現,但並不需要你知道母版的類型。

然後就可以開始使用你的母版通過讓說:

Master.Title = "My Page Title"; 

您可以從主這樣調用的事件也是如此。使用Master.FindControl找到您想要的主控制。發現控制

例子:

HtmlAnchor btnMyImageButton = (HtmlAnchor)Master.FindControl("btnMyImageButton"); 

,但我會建議使用ImageButtonOnClick屬性,並將其設置爲母版頁上可公開訪問的空隙/分。然後簡單地稱之爲void/Sub:

Master.ImageButtonClick(); 
+0

感謝烏拉圭回合答覆......最後一部分就是我一直在尋找... – shazia 2011-05-19 16:45:27