kommt drauf an, ob Du die Textbox mit der ID Textbox_1 dem Placeholder vorher
hinzugefügt hast.
in meinem Beispiel ist diese eingefügt worden und Du kannst dannach die Textbox
finden/verwenden
Das folgende Beispiel funktioniert!
For i As Integer = 0 To 9 'z.B.
If i > 0 Then
Dim l As New Literal
l.Text = "<br />"
PlaceHolder1.Controls.Add(l)
End If
Dim x2 As New TextBox
x2.Text = "blba blan"
x2.Enabled = False
x2.ID = "Textbox_" & i '<= hier wird die ID gesetzt auf die
Du später zugreifst
PlaceHolder1.Controls.Add(x2)
Next
Dim t As TextBox = CType(PlaceHolder1.FindControl("Textbox_1"), TextBox)
t.Text = "dasdasdasdaw"
Wenn Du also in Page_load die Textbox einfügst, kannst Du später darauf mit
PlaceHolder1.FindControl("Textbox_1") darauf verweisen. sonst natürlich nicht.
Statt dem Literal kannst Du auch ein Label nehmen.
Dann kannst Du den Style des Labels über Label1.CssClass setzen.
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Auftrag von Popp Andre
> Gesendet: Freitag, 7. Oktober 2005 14:46
> An: [email protected]
> Betreff: AW: [Asp.net] per Codebehind Textboxen erzeugen, die man
> ansprechen kann
>
>
> ich bin es leider nochmal!
>
> Try
> Dim Textbox1 As TextBox =
> CType(PlaceHolder1.FindControl("Textbox_1"), TextBox)
> textbox1.Enabled = True
> Catch
> Response.Write("Geht wieder nicht!")
> End Try
>
> ist daran schonwieder was falsch und wenn nein, warum geht er immer in den
> catch-teil, ich glaub ich geb langsam bei der
> aufgabe auf, der will einfach net so wie ich will :(
>
> aber schonmal DANKE an alle, die es versucht hatten
>
> Viele Grüße
> André Popp
>
>
> >-----Ursprüngliche Nachricht-----
> >Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED] Im Auftrag von Popp Andre
> >Gesendet: Freitag, 7. Oktober 2005 14:20
> >An: [email protected]
> >Betreff: AW: [Asp.net] per Codebehind Textboxen erzeugen, die
> >man ansprechen kann
> >
> >Sorry, habe noch vergessen, des mit dem Literal zu erklären.
> >Da soll über der Textbox ein Text stehen, der dann aber auch
> >auf enabled gestellt werden kann, schließlich soll der
> >Anwender nicht denken, dass plötzlich alles gelöscht ist ^^.
> >Falls es sowas nicht gibt, dann mach ich es per response.write.
> >
> >@chris: bei mir geht es super ;)
> >ich hab einfach an der Stelle im HTML-Code die Prozedur
> >aufgerufen per "<% Gennerieren() %>" und mit "style" konnt ich
> >es dann von links her einrücken.
> >Aber da das Ansprechen der Textboxen ja so nicht klappt, hast
> >du mit deiner Lösung vollkommen recht.
> >
> >und dann noch kurz ne Frage zu deinem Textbox ansprechen: kann
> >man damit nur bestimmte Textboxen ansprechen, oder kann ich
> >die irgendwie in eine Schleife packen, damit ich alle
> >generierten ansprechen kann oder sind damit alle Textboxen im
> >PlaceHolder gemeint?
> >
> >Viele Grüße
> >André Popp
> >
> >
> >-----Ursprüngliche Nachricht-----
> >Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED] Im Auftrag von Christoph Cluss
> >Gesendet: Freitag, 7. Oktober 2005 14:05
> >An: [email protected]
> >Betreff: AW: [Asp.net] per Codebehind Textboxen erzeugen, die
> >man ansprechen kann
> >
> >ja, das x declarierst Du ja nur innerhalb der Schleife...
> >dannach ist es
> >weg.
> >
> >Du kannst aber mit:
> >dim Textbox1 as
> >textbox=ctype(placeholder1.findcontrol("Textbox_1"),Textbox)
> >aus einer anderen Function wieder drauf zugreifen.
> >
> >
> >Response.write ist nautürlich ok... aber gibt ja alles am
> >anfang der Seite aus
> >=> du mußt die ganze Seite so zusammen bauen...
> >Des willl man aber net, gell?
> >
> >Das Literal hat zwar keine enabled Eigenschaft aber dafür visible
> >=> du kannst es unsichtbar machen wenn Du den Zeilenumbruch
> >nicht brauchst.
> >
> >Aller Anfang ist eben schwer.
> >
> >Gruß, chris
> >
> >
> >> -----Ursprüngliche Nachricht-----
> >> Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED]
> >> Auftrag von Popp Andre
> >> Gesendet: Freitag, 7. Oktober 2005 13:36
> >> An: [email protected]
> >> Betreff: AW: [Asp.net] per Codebehind Textboxen erzeugen, die man
> >> ansprechen kann
> >>
> >>
> >> Erstmal: Danke Chris
> >>
> >> Dass ich einiges kompliziert mach, muss ich leider in Kauf
> >nehmen, da ich mir die Sprache zur Zeit selbst aneigne und
> >> noch nicht wirklich was gutes zum lernen gefunden habe.
> >> Die Bücher, die ich hab nehmen halt auch "response.write"
> >(vll. nicht gute Bücher :( )
> >>
> >> Ich erklär am besten nochmal das Problem:
> >> Ich habe ein Formular, in dem man per Checkbox anklicken
> >kann, ob es von einer Gruppe erarbeitet wurde oder nicht (Ja/Nein).
> >> Per Chexbox_Click Event setzt ich dann ein die Felder für
> >die Gruppe auf "true" oder "false" (enabled).
> >> Mein Problem in meinem Code lag darin, dass ich die Methoden
> >nicht mit meiner generierten ID ansprechen konnte, um ihren
> >> "enabled" Status zu ändern.
> >>
> >> Das generierten der Textboxen von Chris klappt super, wobei
> >ich noch ein paar - ich nenne es mal Folgeprobleme - habe:
> >> Gibt es ein Äquivalent zu dem "Literal", dass auch die
> >"enabled"-Eigenschaften hat?
> >> Wie kann ich in einer anderen Methode auf das "x" von der
> >Textbox zugreifen, da er immer ausgibt ich hätte es nicht
> >> deklariert (geschieht alles noch auf der selben Seite)?
> >>
> >> Ich entschuldige mich, falls ich einfach nur vor einer Wand
> >bei diesem Problem sitzt.
> >>
> >>
> >> Viele Grüße
> >> André Popp
> >>
> >>
> >> -----Ursprüngliche Nachricht-----
> >> Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED] Im Auftrag von Christoph Cluss
> >> Gesendet: Freitag, 7. Oktober 2005 12:34
> >> An: [email protected]
> >> Betreff: AW: [Asp.net] per Codebehind Textboxen erzeugen,
> >die man ansprechen kann
> >>
> >> Hallo Andre,
> >>
> >> wenn ich das richtig sehe ... viel zu kompliziert und auch nicht .NET
> >>
> >> Response.write ist ASP und macht man so (möglichst) nicht mehr.
> >>
> >> Ich verstehe nicht ganz Dein Problem aber hier ein Ansatz wie man
> >> das macht:
> >>
> >> setzte einen Palceholder ain Deine Seite
> >> For i As Integer = 0 To 9 'z.B.
> >> If i > 0 Then
> >> Dim l As New Literal
> >> l.Text = "<br />"
> >> PlaceHolder1.Controls.Add(l)
> >> End If
> >> Dim x As New Textbox
> >> x.Text = "blba blan"
> >> x.enabled = False
> >> x.ID = "Textbox_" & I
> >> PlaceHolder1.Controls.Add(x)
> >>
> >> Next
> >>
> >> nach dem Postback(klick auf button) kannst Du dann die Textboxen
> >> auswerten oder nochmal nach der Generierung bearbeiten:
> >>
> >> For Each ctl As Control In PlaceHolder1.Controls
> >> If ctl.GetType Is GetType(TextBox) Then
> >> Dim textbox1 As TextBox = CType(ctl, TextBox)
> >>
> >> ' und hier ist die Textbox für die Auswertug
> >> Response.Write(textbox1.Text)
> >> End If
> >> Next
> >>
> >> Gruß, Chris
> >>
> >>
> >>
> >> > -----Ursprüngliche Nachricht-----
> >> > Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED]
> >> > Auftrag von Popp Andre
> >> > Gesendet: Freitag, 7. Oktober 2005 11:59
> >> > An: [email protected]
> >> > Betreff: [Asp.net] per Codebehind Textboxen erzeugen, die
> >man ansprechen
> >> > kann
> >> >
> >> >
> >> > Hi,
> >> >
> >> > ich bin neu hier und hoffe mal, dass ich endlich was gutes
> >zu asp.net gefunden hab ;-)
> >> >
> >> > Es geht um folgendes:
> >> >
> >> > Ich generiere per Response.Write ("<input....>") ein
> >Eingabefeld in einer For-Schleife und gebe mit dem Counter
> >> > entsprechend eine eindeutige ID mit.
> >> > Da diese For-Schleife nun soviele Textboxen generiert, die
> >vorher in ein Eingabefeld angegeben wurde (z.B. 3
> >> > hineingeschrieben und per Methodenaufruf dann 3 per
> >For-Schleife neue generiert).
> >> > Nun will ich aber, dass diese neu generierten
> >Eingabefelder mit mit der entsprechenden Checkbox (aktiv-inaktiv) auf
> >> > Enabled = true bzw. false gesetzt wird. Da ich aber nicht
> >im Vorfeld weiss, wieviele generiert werden, weiss ich nicht,
> >> > wie ich dass nun mit der ID hinbekomme, da ich doch
> >folgendermassen zugreifen muss:
> >> >
> >> > Eingabefeld0.Enabled = true
> >> > Eingabefeld1.Enabled = true
> >> > ...
> >> >
> >> > Habe erste Versuche den ID-Namen mit ner For-Schleife zu
> >erstellen versucht, aber leider hab ich keine Ahnung wie ich des
> >> > nun richtig hinbekomme.
> >> >
> >> >
> >> > Also, falls einer die Lösung zu meinem Problem kennt, wäre
> >ich sehr dankbar, wenn er sie mir schreiben könnte.
> >> > Natürlich stehe ich für weitere Fragen gerne zur Verfügung.
> >> >
> >> > und hier noch mit code, zum nachvollziehen:
> >> >
> >> > Sub GruppenGen()
> >> > Try
> >> > Dim j As Integer
> >> > For j = 0 To Convert.ToInt16(Textbox12.Text) - 1
> >> > Response.Write("<span
> >style='margin-left:25px'>Gruppenmitglied </span>" & j + 1 & ":")
> >> > Response.Write("<span
> >style='margin-left:25px'>Vorname: </span>")
> >> > Response.Write("<Input Type='text'
> >id='gruppeVorname" & j & "' width='20' height='30' />")
> >> > Response.Write("<span
> >style='margin-left:70px'>Nachname: </span>")
> >> > Response.Write("<Input Type='text'
> >id='gruppeNachname" & j & "' width='20' height='30' />")
> >> > Next
> >> > Catch
> >> > Response.Write(" ")
> >> > End Try
> >> >
> >> > 'Dim arrTextBoxes As TextBox()
> >> > 'For i As Int16 = 0 To Convert.ToInt16(Textbox12.Text) - 1
> >> > ' ReDim Preserve
> >arrTextBoxes(Convert.ToInt16(Textbox12.Text) - 1)
> >> > ' arrTextBoxes(i) = New TextBox
> >> > End Sub
> >> >
> >> > das ist die Methode, die die Textboxen erzeugen soll (in
> >Kommentar steht ein Lösungspost von einem Forum, aber ich
> >> > versteh den nicht wirklich, bzw. konnte denn nicht passend
> >verwenden)
> >> >
> >> > das Convert.ToInt16(Textbox12.Text)-1 soll einfach aus
> >einer voherigen Textbox die Zahl nehmen, wie oft sie generiert
> >> werden soll.
> >> >
> >> > Die Textbox mit der Textboxanzahl hab ich wie folgt auf
> >falsche Eingaben überprüfen lassen:
> >> >
> >> > Private Sub Textbox12_TextChanged(ByVal sender As
> >System.Object, ByVal e As System.EventArgs) Handles
> >Textbox12.TextChanged
> >> > Try
> >> > If Convert.ToInt16(Textbox12.Text) >= 1
> >AndAlso Convert.ToInt16(Textbox12.Text) <= 99 Then
> >> > gruppenErr.Text = "Sie haben es geschafft!"
> >> > Else
> >> > gruppenErr.Text = "Bitte geben Sie eine
> >Zahl von 1 bis 99 ein!"
> >> > End If
> >> > Catch
> >> > gruppenErr.Text = "Bitte geben Sie eine Zahl
> >von 1 bis 99 ein!"
> >> > End Try
> >> >
> >> > End Sub
> >> >
> >> >
> >> >
> >> > Vielen Dank im voraus!
> >> >
> >> > Viele Grüße
> >> > André Popp
> >> > _______________________________________________
> >> > Asp.net Mailingliste, Postings senden an:
> >> > [email protected]
> >> > An-/Abmeldung und Suchfunktion unter:
> >> > http://www.glengamoi.com/mailman/listinfo/asp.net
> >>
> >> _______________________________________________
> >> Asp.net Mailingliste, Postings senden an:
> >> [email protected]
> >> An-/Abmeldung und Suchfunktion unter:
> >> http://www.glengamoi.com/mailman/listinfo/asp.net
> >>
> >>
> >> _______________________________________________
> >> Asp.net Mailingliste, Postings senden an:
> >> [email protected]
> >> An-/Abmeldung und Suchfunktion unter:
> >> http://www.glengamoi.com/mailman/listinfo/asp.net
> >
> >_______________________________________________
> >Asp.net Mailingliste, Postings senden an:
> >[email protected]
> >An-/Abmeldung und Suchfunktion unter:
> >http://www.glengamoi.com/mailman/listinfo/asp.net
> >
> >
> >_______________________________________________
> >Asp.net Mailingliste, Postings senden an:
> >[email protected]
> >An-/Abmeldung und Suchfunktion unter:
> >http://www.glengamoi.com/mailman/listinfo/asp.net
> >
> >
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [email protected]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net