2010-12-10 60 views
3

是否可以從母版頁訪問位於內容頁面中的控件(帶有內容佔位符,多視圖控件更精確)?ContentPage控件(mv) - > MasterPage訪問

情況是,我有一個菜單,位於母版頁的按鈕。

現在在我的內容頁面中,我有1個內容佔位符。 其中包含多個視圖的多視圖。

如果我按菜單(MasterPage)中的按鈕,它應該打開正確的視圖(及其控件)顯示在內容佔位符區域。

我已經設置了ActieveViewIndex = 0,但我得到各種奇怪的行爲。 我不得不在某處用ActiveViewIndex ++做些事情,但似乎沒有任何效果。

編輯::

string a = Request.Querystring["one"] 
string b = Request.QueryString["two"] 
if (a == "addOne") // where addone is a redirection to the content page from the master page button 
{ 
    mvMultieView.SetActiveView(vView1); 
} 
else 
if (b == "addTwo") 
{ 
    mvMultieView.SetActiveView(vView2); 
} 

有什麼建議? 親切的問候。

回答

1

我的團隊和我完成這項任務(我不知道這是最好的方法,但它是有效的)的方式是使用查詢字符串(就像您在上一個問題中看起來那樣)。我們建立了一個名爲iView的標準QS變量,它將確定所討論的視圖的名稱(不一定是控件名稱本身,而是內容控件將響應的一些關鍵字)。由於我們所有的頁面/控件都有一個它們繼承的頁面基類,因此我們在基類中放置了一個方法(在我們的例子中是在頁面級別,但在您的控制級別可能工作),負責獲取請求的視圖。在控件中,我們可能會有一個機制(可能是開關)來設置activeView。在某些情況下,我們只是使用了控件的實際ID(因爲它被混淆是個謎),並完全避免了開關。

http://www.mydomain.com/mypage.com?iView=mySecondView 

partial class MyControl : System.Web.UI.WebControl 
{ 
    // blah blah control stuff 

    public string getRequestedView() 
    { 
     return (Request.QueryString["iView"]) ? Request.QueryString["iView"] : String.Empty; 
    } 
} 

... 

protected void Page_Load(object sender, EventArgs e) 
{ 
    View myView = myMultiView.FindControl(this.getRequestedView()); 
    if(myView != null) 
     this.MyView.SetActiveView(myView); 
} 
+0

Ty爲答覆。但我已經有3個字符串request.querystring - > 3個不同頁面的意見來。但我如何鏈接到這個「iView」變量?問候。 – Tonz 2010-12-10 17:08:46

+0

@Tonz - 由於每個瀏覽器窗口只能顯示1個頁面,每個多視圖只能顯示1個視圖,因此此iView變量成爲全局構造。你使用的是什麼版本的.Net?我可以模擬一個我正在談論併發布的快速示例項目。 – 2010-12-10 17:33:50

+0

Cheer Joel !, asp 4.0。但真正奇怪的只有第一個按鈕正常工作,我的第二個只顯示空白區域。即使從頭開始所有的代碼。 – Tonz 2010-12-10 17:44:12

2

您可以輕鬆地做到這一點使用find控制

View myView = (View)this.Master.FindControl("PlaceHolderFullMain").FindControl("PlaceHolderMain").FindControl("Mymultiview") 
0

你做了母版頁或內容頁這種變化? ,因爲我也有同樣的問題。

我在我的主頁中有鏈接按鈕,我需要激活內容頁面中的視圖控件。 內容頁面不是當前加載的頁面。

此方法對我的解決方案有幫助嗎?

+0

請在您的帖子中[請勿使用簽名或標語](http://stackoverflow.com/faq#signatures)。 – meagar 2010-12-15 07:22:40

相關問題