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