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
