Ich habe eine Benutzerkontrolle, die ein Textfeld auf es hat, jetzt diese Benutzerkontrolle ist auf eine andere Benutzerkontrolle, die ich auf Aspx-Seite verwenden, wie kann ich Wert der Textbox auf der ersten Benutzerkontrolle erhalten.
Antworten
Zu viele Anzeigen?Jon Limjap's Antwort bietet die beste Lösung für diese Art von Problem - Expose-Steuerelementwerte mit öffentlichen Eigenschaften.
Wenn Sie dies jedoch nicht auf diese Weise tun möchten (oder wenn Sie dies für viele Steuerelemente tun müssen und die Erstellung von Public-Eigenschaften für jedes Steuerelement vermeiden möchten), können Sie Reflection verwenden, um das Steuerelement in den ChildControls des gewünschten UserControls zu "finden":
TextBox txt = UserControl1.FindControl("myTextBox") as TextBox;
if (txt != null)
{
string val = txt.Text;
}
An der Spitze der .aspx Seite, fügen Sie die folgende Zeile über dem Tag ein.
<%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %>
Diese Richtlinie registriert das Steuerelement, damit es bei der Verarbeitung der Seite erkannt werden kann. TagPrefix bestimmt den eindeutigen Namensraum des Steuerelements, TagName ist der Name des Steuerelements und Src ist der Pfad des Steuerelements. Deklarieren Sie Benutzersteuerelemente wie
<Test:TestControl id="TestControl" runat="Server"/>
Zugriff und Einstellung der Werte von Benutzersteuerelementen auf der .aspx-Seite: Der Benutzer kann auf die Werte des Benutzersteuerelements von der .aspx-Seite über Eigenschaften zugreifen und diese einstellen, indem er Javascript und den Code der aspx-Seite verwendet. Verwendung von Eigenschaften Wenn die test.ascx Kontrolle hat zwei Textfelder und Submit-Button. Sie können die Werte der Textfelder in der Kontrolle von einer .aspx Seite durch die Deklaration von öffentlichen Eigenschaft in der .ascx Seite zugreifen.
public string FirstName
{
get{return txtFirstName.Text;}
set{txtFirstName.Text = value;}
}
In der .aspx-Seite können Sie auf FirstName zugreifen, indem Sie
TestControl.FirstName
You can set the FirstName of the control from aspx page using
TestControl.FirstName = "Suzzanne"
Anmerkung: ref