Wie man HiddenField-Steuerelement in der Masterpage und setzen Sie den Wert?
Ich habe eine MasterPage
enthält ein verborgenes Feld-Steuerelement. Ich möchte den aktuellen Wert des versteckten Feldes und setzen Sie den Wert von Seiten, die das MasterPage
.
Ich habe folgenden code bisher: (in den Seiten)
//Get the textbox and set it's value
TextBox txt1 = new TextBox();
txt1 = (TextBox)this.Master.FindControl("txtHiddenField");
txt1 .Text = "true";
Der obige code scheint nicht zu funktionieren. Welchen code brauche ich, um das versteckte Feld-Steuerelement, und legen Sie es Wert? (und es ' s-Wert)
- ist txtHiddenField ein HiddenField? dann nutzen Sie HiddenField geben. Sie nicht brauchen, um verwenden Sie einen Konstruktor an, warum sollte ich eine Instanz erstellen, um einen Verweis auf eine andere Instanz?
- Ich denke, es sollte so ((TextBox)diese.Master.FindControl("txtHiddenField")).Text = "True";
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen, um eine öffentliche Eigenschaft/Methode in Ihrer
MasterPage
, dass Sie verwenden können, um die set - /get-der HiddenField-Wert.in Ihrer Master(vorausgesetzt, es ist eine Art wird als
SiteMaster
):In Ihre Seite ein:
Dieser Ansatz ist geradlinig, weniger fehleranfällig und leicht lesbar. Sie könnte sogar ändern Sie das Steuerelement in der master-ohne die Seiten(f.e. wenn Sie möchten, ersetzen Sie das hidden-Feld mit einem Textfeld).
Davon aus, dass Ihr
"true"
Wert zeigt an, dass Sie tatsächlich speichern wollen, einen booleschen Wert, ich würde empfehlen, mit einerbool
als Daten-Typ für die Eigenschaft und einen selbsterklärenden Namen. Sie können dann speichern Sie es in das hiddenfield aber der client(also der Seite) nicht zu wissen.HiddenField setzt seinen text als WERT, während die TextBox hat eine Eigenschaft TEXT. Natürlich casting ein auf die andere und Einstellung der text-Eigenschaft nicht helfen.
Tun Sie dies:
Angenommen, Sie Hinzugefügt haben, "verstecktes Feld" Kontrolle wie dieser ->>
können Sie darauf zugreifen, wie -->>
Möglicherweise werden Sie fehlen
ContentPlaceHolder
Probieren Sie etwas wie dieses
Lesen Sie mehr über Referenz ASP.NET Master-Seite-Inhalt