Zeilenumbruch im Gridview

darkentik

Grünschnabel
hi,
auf Arbeit programmiere ich gerade eine kleine Webanwendung wo man Text in eine Textdatei speichert und den Inhalt der Datei gleich in nem Gridview sehen kann auf der Seite. Mein Problem ist, dass ich Zeilenumbrüche beim Speichern des Inhaltes der Textbox in die Textdatei durch "#" ersetzen lasse. Anschließend möchte ich die Textdatei auslesen wobei ich aber alle "#" wieder durch Zeilenumbrüche ersetzen möchte, die dann im Gridview wieder angezeigt werden sollen.

was bisher geht:

-> Zeilenumbrüche durch "#" ersetzen
Code:
txtEdit.Text = txtEdit.Text.Replace(Chr(10), "#")
txtEdit.Text = txtEdit.Text.Replace(Chr(13), "#")

was er noch nicht erkennt :

-> "#" wieder in Zeilenumbrüche umwandeln
Code:
Do Until leser.EndOfStream
            s = leser.ReadLine()
            ReDim Preserve liste(i)
            liste(i) = s.Replace("#", Chr(10) + Chr(13))
            If i Mod 2 = 1 Then
                dt.Rows.Add(liste(i - 1), liste(i))
            End If
            i = i + 1
Loop

in der schleife speichere ich die einzelnen Zeilen der Textdatei in ein Array und lasse alle 2 Zeilen eine neue Zeile im Gridview erzeugen.
Das was rot markiert ist geht nocht nicht, ich habe auch keine ahnung im moment wie ich das hinkriegen könnte.

Im Anhang findet Ihr die betroffene Zeile, ich habe sie rot eingerahmt.
die Werte sind alles nur zum testen gedacht also net wundern, da sie keinen sinne rgeben ;)
Die Zahlen "1" und "2" sollen untereinander stehen.
Im 2. Anhang seht Ihr wie es in der Textdatei aussieht.
Da steht : 1##2 das soll auch so sein, da ich die Zeilenumbrüche mit einer # "replaced" habe.
Jetz will ich den Schritt in dem Gridview wieder rückgängig machen.

Soviel zu meinem Problem.
Ich hoffe Ihr könnt mir helfen.

tschü David
 

Anhänge

  • problem.JPG
    problem.JPG
    21,9 KB · Aufrufe: 104
  • bericht.txt
    228 Bytes · Aufrufe: 27
Hi

ASP.NET generiert auf Client-Seite trotzdem Html-Code. Hast du mal probiert anstatt eines CRLF ein <br> einzufügen, also eine Html-Zeilenumbruch?
 
ja ich habe statt dem chr(10) und chr(13) auch schon versucht mit <br/> das zu gestalten aber ebenfalls erfolglos, da schreibt er mir den html tag als text hin, weiß nicht ob ich dem gridview noch ne eigenschaft verpassen muss damit er mir mein html tag auch richtig umwandelt...
und mit environment.newline hab ich auch schon rumprobiert, aber auch ohne erfolge
 
alles klar, das klingt doch mal vielversprechend.
werde es morgen auf arbeit gleich mal testen, hoffe es kann mir weiterhelfen.
danke dir schonmal!
 
Hab es grad versucht aber leider erfolglos.
Das Problem wird sein, weil ich mein Gridview mit einer Datatable fülle, die ich dynamisch im codebehind erstelle.

Hier meine Funktion :

Code:
Private Sub loaddata()
        Dim datnam As String
        datnam = "D:\test\bericht.txt"
        Dim leser As New System.IO.StreamReader(datnam)
        Dim s As String
        Dim liste() As String = Nothing
        Dim i As Integer = 0
        Dim dt As New DataTable
        dt.Columns.Add().ReadOnly = True
        dt.Columns.Add()
        Do Until leser.EndOfStream
            s = leser.ReadLine()
            ReDim Preserve liste(i)
            liste(i) = s.Replace("#", "<br />")
            If i Mod 2 = 1 Then
                dt.Rows.Add(liste(i - 1), liste(i))
            End If
            i = i + 1
        Loop
        gdvListe.DataSource = dt
        gdvListe.DataBind()
        leser.Close()
        GesamtEintrag.Value = i
End Sub

Das rotgeschrieben ist die betreffende Spalte, in der ich die Zeilenumbrüche benötige. Ich hab schon versucht die Coloums dort irgendwie zu verändern aber da krieg ich dann die Meldung -> "htmlencode" ist kein Member von "System.Data.Data.Colum"

Ich zweifle schon daran ob ich nur ein Denkfehler in meiner Logik verursacht habe, oder ob es wirklich daran liegt, weil ich die Spalten manuell einfüge über meine Funktion.

Ich danke dir für deine Hilfe vielleicht finde ich ja noch eine Lösung, schließlich muss die Anwendung ja fertig werden.
Tschü David
 
Zuletzt bearbeitet:
So folgendes:
Ich habe jetzt in der aspx Seite Boundfields eingefügt und denen jeweils die Eigenschaft "datafield" gegeben. In der VB Datei hab ich dann meinen Coloumns auch jeweils die selbe Bezeichnung verpasst wie den Boundfields.

Hier mein Quellcode:

Code:
  dt.Columns.Add("Info")
dt.Columns.Add("Antwort")

und hier die aspx Seite:

Code:
<asp:BoundField DataField="Info" HtmlEncode="false" HeaderText="Wünsche/Bugs" />
 <asp:BoundField DataField="Antwort" HtmlEncode="false" HeaderText="Antworten" />
und wie man sieht hab ich dann den Boundfields ganz bequem die Eigenschaft htmlencode="false" geben können, wie es Nico gefunden hatte im Netz.
Jetzt funktioniert auch der Zeilenumbruch, siehe Bild(im Anhang).
Ich danke dir Nico für deine Hilfe!
Bis zum nächsten Problem =)

tschü David
 

Anhänge

  • Zeilenumbruch.JPG
    Zeilenumbruch.JPG
    14,7 KB · Aufrufe: 65

Neue Beiträge

Zurück