2017-08-30 62 views
0

我在aspx Masterpages內容頁面上設置了隱藏字段控件和鏈接按鈕。如何在使用母版頁時使用Request.Form檢索值

<asp:HiddenField ID="HiddenField1" runat="server" value='<%# Eval("ID") %>'/> 
<asp:LinkButton ID="LinkButton1" runat="server" postbackurl="orderhistorydetail.aspx">View</asp:LinkButton> 

當試圖檢索使用此代碼回傳頁面上的價值...

string oid = Request.Form[HiddenField1]; 

我收到錯誤...

名稱 'HiddenField1' 不不存在於當前的情況下。

這是因爲有物質?我怎樣才能解決這個問題?

EDITED ...

我認爲這是對在其上有HiddenField控件的頁面生成的HTML源代碼,這是輸出...

<input type="hidden" name="ctl00$MainContentPlaceHolder1$ListView1$ctrl0$ctl00$HiddenField1" id="MainContentPlaceHolder1_ListView1_ctrl0_HiddenField1_0" value="12386026" /> 

現在,作爲代碼你最初給我,我更新到這...

HiddenField hf = Page.PreviousPage.Master.FindControl("MainContentPlaceHolder1").FindControl("ListView1").FindControl("HiddenField1") as HiddenField; 

仍然沒有運氣。我靠近嗎?

回答

0

您要發佈的頁面不知道上一頁中存在的控件。你需要爲此使用FindControl。

HiddenField hf = Page.PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("HiddenField1") as HiddenField; 
string oid = hf.Value; 

或者如果你真的想要使用Request.Form,你需要使用UniqueID。

string oid = Request.Form[HiddenField1.UniqueID]; 

首先,你必須找到頁的正在使用一個母版頁中的佔位符中的佔位符,然後正確的控制。

如果你要檢查什麼都張貼值,使用:

foreach (string s in Request.Form.Keys) 
{ 
    Response.Write(s.ToString() + ": " + Request.Form[s] + "<br>"); 
} 
+0

好了,我怎麼會那麼檢索只是hiddenfield1通常會使用檢索...串OID的值= Request.Form [HiddenField1]; ? – cjtampa

+0

雖然在第一行代碼中出現了此錯誤,但未將對象引用設置爲對象的實例。 – cjtampa

+0

首先,確保'ContentPlaceHolder1'與您使用主頁面向頁面中的'asp:Content'輸入的ID相匹配。如果'HiddenField1'在另一個控件中,則需要先通過在'.FindControl(「HiddenField1」)' – VDWWD

相關問題