2012-12-27 110 views
-1

我有一個用於多個內容頁面的母版頁。 在每個內容頁面上都有一個用戶控件。 我想通過點擊主頁面上的按鈕來調用該控件的方法。 這可能嗎?我們可以從母版頁訪問內容頁面控件嗎?

在此先感謝。

+2

如果每個內容控件具有相同的用戶控件,那麼它可能應該移動到母版頁上? – slugster

+0

將此控件添加到母版頁中的新的contentplaceholder,並在您不想顯示的任何內容頁面中覆蓋此內容。這很容易維護和更好的選擇。 –

+1

如果你正在維護每個控件中的按鈕的點擊事件,爲什麼不在用戶控件中添加該控件又有什麼問題。(UserControl + Button = ContentPage)' – Pratik

回答

1

我想調用控件的方法點擊母版頁上的按鈕。可以嗎?

是和否。如果你正在談論客戶端,那麼是的,你可以通過JavaScript在控件上調用一個方法。如果你在說服務器端,那麼不。


但是,我要問,如果控制是可用的內容頁面,這是一個非常好的候選現有的頁是嗎?如果你不需要特定的內容頁面,你可以隱藏它。

+0

是的,但它已經太晚了,我有70頁使用這個母版頁,所以它很難...我怎樣才能使用JavaScript? – Rupali

+0

@Rupali,我想你誤解了我的觀點。 ***如果你試圖執行一些客戶端,那麼*是*你可以訪問它,因爲當客戶端它是一個頁面。 ***如果你正在嘗試執行某些服務器端的事情,那麼只需要扣下並進行更改即可。你將以非常短的時間完成任務,並且可能比爲你處理這個問題花費的時間少。 –

+0

好的謝謝Michael Perrenoud .. :) – Rupali

2

爲此,您可以訪問的內容頁面控制

protected void Button1_Click(object sender, EventArgs e) 
{ 
    UserControl_Type uc1 = 
    (UserControl_Type)ContentPlaceHolder1.FindControl("UserControlId"); 
    if (uc1 != null) 
    { 
     uc1.Method(); 
    } 
} 

我想你應該移動用戶控件掌握在母版CS文件按鈕,點擊頁面和訪問用戶控件的方法。你可以做以下的,如果有,你不想顯示該用戶控件

使用內容佔位符的任何內容頁:

在母版頁: 地址:

<asp:contentplaceholder id="UcControlPlaceHolder" runat="server"> 
<!-- User control here --> 
</asp:contentplaceholder> 

在內容頁中,其中你希望顯示用戶控件添加以下標記,並從那裏你想要用戶控件來顯示所有內容的網頁刪除此標籤:

<asp:Content ID="UcControlContent1" 
ContentPlaceHolderID="UcControlPlaceHolder" Runat="Server">  
</asp:Content> 
相關問題