asp.net
  • master-pages
  • 2017-08-30 2 views 0 likes 
    0

    Ich habe ein Hiddenfield-Steuerelement und eine Verknüpfungsschaltfläche auf einer aspx Masterpages-Inhaltsseite eingerichtet.Verwendung von Request.Form zum Abrufen von Wert bei Verwendung von Masterpages

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

    Beim Versuch, den Wert auf der Postbacks Seite mit diesem Code abrufen ...

    string oid = Request.Form[HiddenField1]; 
    

    ich den Fehler bekommen ...

    Der Name 'HiddenField1' tut nicht im aktuellen Kontext vorhanden.

    Liegt das an Materpages? Wie kann ich das beheben?

    EDITED ...

    ich die Quelle html angesehen, die für die Seite, die die Kontrolle über Hidden hat und dies war der Ausgang ...

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

    Jetzt erzeugt wurde, wie für die Code, den Sie gab mir ursprünglich, ich es so aktualisiert ...

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

    noch kein Glück. Komme ich mir nahe?

    Antwort

    0

    Die Seite, auf die Sie schreiben, hat keine Kenntnis von den Steuerelementen, die auf der vorherigen Seite vorhanden sind. Sie müssen FindControl dafür verwenden.

    Oder wenn Sie wirklich Request.Form verwenden möchten, müssen Sie die UniqueID verwenden.

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

    Zuerst müssen Sie den Platzhalter der Seite finden, die eine Master-Seite verwendet, und dann die richtige Steuerung innerhalb des Platzhalter.

    Wenn Sie überprüfen wollen, was alle Posted Werte sind, verwenden Sie diese:

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

    Ok, so wie würde ich dann den Wert von nur, dass hiddenfield1 abrufen, die normalerweise abgerufen werden würde mit ... string oid = Request.Form [HiddenField1]; ? – cjtampa

    +0

    Ich bekomme diesen Fehler obwohl auf der ersten Zeile des Codes, die Sie präsentiert haben .. Object Referenz nicht auf eine Instanz eines Objekts festgelegt. – cjtampa

    +0

    Stellen Sie zuerst sicher, dass 'ContentPlaceHolder1' mit der ID übereinstimmt, die Sie dem ASP: Content auf der Seite mit dem Master gegeben haben. Wenn 'HiddenField1' sich in einem anderen Control befindet, müssen Sie dies zunächst durch Navigieren in der Control Tree durch Hinzufügen eines anderen' FindControl' vor '.FindControl (" HiddenField1 ")' – VDWWD

    Verwandte Themen