Kann mir mal einer sagen wie man FindControl benutzt

AppleSeed

Mitglied
Hi @ all

Wie benutzt man FindControl um in einem FormView ein Label zu finden.

Ich hab eine FormView1 und in dem ist ein Label mit der ID: "RaumLabel", die ID: RaumLabel befindest sich im ItemTemplate.
Und ich möchte jetzt die ID: RaumLabel jetzt in einm TextBox mit der ID: "txt" anzeigen der nicht in dem FormView ist.

Ich hab es schon so probiert.

Protected Sub FormView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.Load
Dim var1 = FormView1.FindControl("RaumLabel").ToString
txt.Text = var1
End Sub


Programmiersprache ist asp.net mit vb

Gruß
AppleSeed
 
Hi

Eigentlich genauso! Sagst du uns auch noch wo dein Problem liegt.

Falls du das Problem hast, dass dein Label nicht gefunden wurde:
FindControl(String) sucht nicht rekursiv.
Wenn du das willst, versuch mal FindControl(String, Int32) oder such rekursiv auf der Seite.
 
Genau das ist mein Problem das ich das Label nicht finde.

Und wenn ich es so mache
FormView.Findcontrol(String, Int32) ("RaumLabel") bekomme ich einen Fehler

Die Überladungsauflösung ist fehlgeschlagen, da kein(e) zugreifbare(r/s) "FindControl" diese Anzahl von Typargumenten akzeptiert.

Könntest du mir bitte ein Beispiel mit rekrusiv zeigen
 
Ohje :rolleyes: Also wenn es dir wirklich so schwer fällt, dann wandel dir es einfach um http://labs.developerfusion.co.uk/ Aber eins verstehe ich nicht, da hast du die Lösung vom Problem direkt vor deinen Augen und du probierst es noch nicht mal aus, weil es ja kein VB ist. Wie niggo es bereits gut erklärt hat unterscheidet sich die Syntax nur. Das werde ich glaub ich nie verstehen :confused:
 
Danke für den Converter

Und ich hab es versucht zu ändern ander hab mich noch nie mit C# auseinander gesetzt.


Jetzt komme ich eine

Kompilierungsfehler

Beschreibung: Fehler bei der Kompilierung einer Ressource, die zur Verarbeitung dieser Anforderung erforderlich ist. Überprüfen Sie die folgenden spezifischen Fehlerdetails, und ändern Sie den Quellcode entsprechend.

Compilerfehlermeldung: ASPNET: Die in dieser Codedatei definierte Klasse muss mit dem inherits-Attribut übereinstimmen und die richtige Basisklasse (z.B. Page oder UserControl) erweitern.

Quellfehler:



Zeile 1:
Zeile 2: Partial Class _Default
Zeile 3: Inherits System.Web.UI.Page
Zeile 4:

wo soll ich den jetzt die Page oder UserControl erweitern.
 
Hab den Kompilierungsfehler gefunden.

Und andere Fehler hab ich auch keine mehr drin aber trotzdem bekomm ich keinen Wert aus dem FormView in die TextBox / Label wieder gegeben.

Woran könnte das liegen.


hier mal der CODE:

Code:
 ' Die Funktion:
    Public Shared Function FindControlRecursive(ByVal Root As Control, ByVal Id As String) As Control
        If Root.ID = Id Then
            Return Root
        End If
        For Each Ctl As Control In Root.Controls
            Dim FoundCtl As Control = FindControlRecursive(Ctl, Id)
            If FoundCtl IsNot Nothing Then
                Return FoundCtl
            End If
        Next
        Return Nothing
    End Function

    Protected Sub FormView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.Load
        Me.txt = CType(FindControlRecursive(Me.Master, "ISTbapIDLabel"), Label)
    End Sub
 
Zurück