2010-04-09 18 views
5

Hallo Ich habe Benutzersteuerelement namens test.ascs mit einem Textfeld erstellt. Jetzt habe ich dieses Benutzersteuerelement auf meiner default.aspx-Seite hinzugefügt. Wie kann ich auf diesen Textfeld-Wert von meiner default.aspx Seite zugreifen?Wie Zugriff auf Usercontrol-Werte von Seite?

Gibt es eine Chance?

Antwort

3

Suchen Sie auf Ihrer Standardseite mithilfe Ihres Benutzersteuerelements nach der TextBox.

TextBox myTextBox = userControl.FindControl("YourTextBox") as TextBox; 
string text = myTextBox.text; 
+3

Diese Methode kann gut funktionieren, aber es riecht große Zeit. Sie haben Textfeld-IDs fest codiert. Sie überprüfen nicht, ob das Ergebnis! = Null ist, bevor Sie versuchen, auf seine Eigenschaften zuzugreifen. Die Verwendung von FindControl ist so viel langsamer und ineffizienter, als wenn es in einer geeigneten OO-Form ausgeführt wird und die Eigenschaften des Benutzersteuerelements verfügbar macht. – slugster

3

Wenn dies der Zweck der Kontrolle ist, dann erstellen Sie eine öffentliche Eigenschaft auf Ihrer Benutzersteuerung, die diesen Wert freigibt, können Sie dann Zugriff auf den von Ihrer Seite:

string textBoxValue = myUserControl.GetTheValue; 
+0

Wo 'myUserControl' die ID von UserControl in Markup ist:' ' – abatishchev

6

ich die in der Regel aussetzen Textbox Text Eigenschaft direkt in test.ascx Code hinter wie folgt aus:

public string Text 
{ 
    get { return txtBox1.Text; } 
    set { txtBox1.Text = value; } 
} 

Dann können Sie diese Textbox aus dem Code erhalten und setzen hinter der default.aspx wie:

usrControl.Text = "something"; 
var text = usrControl.Text; 
2

Wie der Wert einer Textbox von einem Usercontrol auf einer Seite zuzugreifen, die diese Usercontrol

Schritt 1 verwendet: in Benutzersteuerung macht einen Event-Handler

public event EventHandler evt; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     txtTest.Text = "text123"; 
     evt(this, e); 
    } 

2: in Seite Rufen Sie den Eventhandler

protected void Page_Load(object sender, EventArgs e) 
    { 
     userCntrl.evt += new EventHandler(userCntrl_evt); 
    } 

void userCntrl_evt(object sender, EventArgs e) 
    { 
     TextBox txt = (TextBox)userCntrl.FindControl("txtTest"); 
     string s = txt.Text; 
    } 
Verwandte Themen