2009-02-27 76 views
0

有沒有一種方法可以從我創建並放置在我的ASP.Net 2.0應用程序的App_Code文件夾中的用戶類的主頁隱藏字段中獲取值?從用戶類獲取MasterPage Hiddenfield值

一些例子最好在VB.Net高度讚賞。

謝謝。

透露進一步的細節,假設如下:

MasterPage.Master MasterPage.Master.vb

MyPage.aspx Mypage.aspx.vb

App_Code文件夾中,添加新課堂,說TESTClass。

我已經在母版頁中放置了一些邏輯。 MyPage.aspx使用Masterpage.master作爲其母版頁。在母版頁中,我所做的邏輯將值存儲到隱藏字段中。

在我的TestClass中,如何訪問母版頁隱藏字段?

請注意,TestClass不是用戶控件,而是用戶定義的類,它包含一些可由myPage.aspx.vb訪問的業務特定邏輯。

我嘗試了ScarletGarden的建議,但它似乎沒有得到Masterpage Hiddenfield,我需要獲取該值。

回答

4

會這樣的工作?

((HiddenField)this.Page.Master.FindControl("[hidden control id]")).Text 
+0

給了我一個錯誤「控制是一種類型,不能用作表達式 – Batuta 2009-02-27 06:09:54

+0

對不起,錯過了演員我編輯了我的答案以糾正 – Jared 2009-02-27 15:20:16

1

您可以通過這些得到它:

hiddenControlValue = HttpContext.Current.Request["hiddenControlId"] 

,或者你可以通過你的網頁,你的方法屬於APP_CONFIG在你的類,並且達到它爲:

public static string GetHiddenValue(Page currentPage) 
{ 
     return currentPage.Request["hiddenValue"]; 
} 

或者你可以通過上下文獲得它:

public static string GetHiddenValue() 
{ 
     return HttpContext.Current.Request["hiddenValue"]; 
} 

希望這有助於。

0

編輯:我在回答之後重新閱讀了這個問題,並且意識到我的回答可能並不完全相同。 :/

Jared的代碼可能工作,但您也可以嘗試以下操作。

在您的MasterPage中,將HiddenField設置爲公共屬性,並將內容存儲在ViewState中以使其在回發期間保留。

事情是這樣:

public HiddenField theHiddenField 
{ 
    get 
    { 
     if (ViewState["HiddenField"] == null) 
      return null; //or something that makes you handle an unset ViewState 
     else 
      return ViewState["HiddenField"].ToString(); 
    } 
    set 
    { 
     ViewState["HiddenField"] = value; 
    } 
} 

然後,您必須添加以下到您的ASCX文件:

<%@ Reference Control="~/Masterpages/Communication.Master" %> 

然後你正是如此訪問它。

Page mypage = (Page) this.Page; // Or instead of Page, use the page you're actually working with, like MyWebsite.Pages.PageWithUserControl 
MasterPage mp = (MasterPage) mypage.Master; 
HiddenField hf = mp.theHiddenField; 

對不起,如果答案有點混亂。當然,這是如何在C#中完成的,如果你想使用VB have a look at this link來達到同樣的想法。