2012-01-04 54 views
0

我可以從我的母版頁調用一個函數到我的默認頁面嗎?當我的母版頁上點擊一個按鈕時,我需要在我的默認頁面上重新加載內容。我使用會話變量。但在設置變量之前加載頁面。它造成了一個問題。所以我想在我的母版頁的默認頁面上調用一個函數。在另一頁上調用函數

default.aspx.cs

private void SendSessionVariables(object p, object p_2) 
{ 
    //call this function from my master page 
} 

Masterpage.aspx.cs

protected void LinkButton1_Click1(object sender, EventArgs e) 
{ 
    Session["SexType"] = "M"; 
    //session is set now i need to call the function on my default page 
} 

回答

2

入住這answer to a similar question通過Robert Paulson。他開始於:

你想要做的更具體的例子是有用的。否則,你會得到各種各樣的答案,其中許多答案都是不合格的。

您應該將常用代碼放在App_Code文件夾中。您也不應該在表單代碼隱藏內部有任何業務邏輯。

事實上,你需要一個頁面來調用另一頁中的方法,這表明你還沒有做到這一點。頁面用於顯示和解釋操作,但不應包含任何業務邏輯。

+0

我編輯過這些內容以便正確引用您的引用。當引用另一個答案時,您需要鏈接到答案以及用戶的個人資料頁面,並明確將他們的工作與您自己的工作分開。但是,您確實需要爲此答案添加內容,因爲引用是此答案的總體。我沒有刪除它(但),但是如果旗子繼續累積,將會如此。 – 2012-01-04 09:24:04

+0

謝謝@TimPost, 但是爲什麼它會被刪除? – MostafaElHawary 2012-01-04 12:59:17

+1

雖然這在技術上回答了這個問題,但它不完全是_你的答案,除非你添加了一些東西。當涉及從其他問題複製答案時,社區往往非常敏感。我編輯它是一個適當的引用,所以你有時間展開一下。一般而言,除非您可以添加內容,否則只需指向另一個答案即可。我不認爲這些問題與我的單選結果相同,但如果對另一個問題的回答回答當前問題,則有80%的時間可能需要標記。 – 2012-01-04 13:08:06

0
protected void LinkButton1_Click1(object sender, EventArgs e) 
{ 
    Session["SexType"] = "M"; 
    //session is set now i need to call the function on my default page 
    if (Page is _default) 
     ((_default)Page).SendSessionVariables(...) 
} 

你需要定義一個方法作爲公共

+0

作爲一個快速和骯髒的方式,這對於服務問題的目的。但是對於更清晰的解決方案,它應該用於事件或接口。 – 2012-01-05 04:05:09

0

你可以嘗試使用反射

Type t = this.ContentPlaceHolder1.Page.GetType(); 
MethodInfo mi = t.GetMethod("SendSessionVariables" , BindingFlags.Instance | BindingFlags.NonPublic); // Add BindingFlags.Instance | BindingFlags.NonPublic to access private method. 
object[] os = new object[2]; 
os[0] = ""; 
os[1] = ""; 
mi.Invoke(this.ContentPlaceHolder1.Page, os); 
相關問題