Avatar billede ReneDahl Praktikant
07. marts 2012 - 21:20 Der er 6 kommentarer

Textbox over hvis x antal tegn. Udskrift mellem(&nbsp;) med Linjeskift(<br/>)

Jeg har forsøgt at lave et lille stykke kode, som skulle udskift mellemrum (&nbsp;)/ (" ") med linjeskift (<br/>) i en textbox når texten i boksen kommer over fx 50 tegn.

Nogle ala det her:

if (txtBeskrivelse.Text.ToString().Length >=50 )
{
objPro.Beskrivelse = txtBeskrivelse.Text.Replace("&nbsp;","<br/>");
}

Men jeg kan ikke få det til at virke? Nogle der ved hvordan man fixer det :)
Avatar billede arne_v Ekspert
07. marts 2012 - 21:29 #1
.ToString() er overfloedig

og ideen lyder meget suspekt

men det boer virke teknisk set
Avatar billede Syska Mester
07. marts 2012 - 21:32 #2
Hvad mener du med det ikke virker?

Har du en test som vi kan køre der beviser det ikke virker?

Men mellemrum i en textbox er jo ikke vist som "&nbsp;" hvilket er vel htmlentity, men som " ", altså blank space.

Men igen ... det er MEGET svært at vide hvad du præcis vil opnå.

mvh
Avatar billede ReneDahl Praktikant
07. marts 2012 - 21:36 #3
Det jeg vil opnå med det lille stykkekode er at når tekstn kommer over 50 tegn.skal der ske et break :)

ala. det her:



  if (txtBeskrivelse.Text.Length >= 50)
        {
    objPro.Beskrivelse = txtBeskrivelse.Text.Replace(" ", "<br/>");
        }
Avatar billede arne_v Ekspert
07. marts 2012 - 21:50 #4
Men indeholder txtBeskrivelse faktisk HTML??
Avatar billede Syska Mester
07. marts 2012 - 21:51 #5
Ja, og overstående burde også virke.

Se det som en retsag ... det er dig der har bevisbyrden til at vise os det ikke virker. Når du har bevist det, så kan vi hjælpe dig med en løsning :-)

Jeg kan ikke se noget galt.
Avatar billede mireigi Novice
16. marts 2012 - 10:48 #6
Den løsning du selv foreslår laver ALLE mellemrum om linjeskift.
Jeg går ud fra at det ikke er hensigten, men at du blot vil lave automatisk linjeskift for hver 50 tegn?

I så fald vil jeg anbefale at du bruger en TextBox, hvor MultiLine er slået til, og så justere bredden på den til at passe med 50 tegn.

Når du så gemmer dit input indsætter du et linjeskift "\r\n" for hver 50 tegn, afgrænset til hele ord.

string[] content = input.Split(new char[]{ ' ' });
string output = "";
int lineLength = 0;

for (int i = 0; i < content.Length; i++)
{
  if (lineLength + content[i].Length >= 50)
  {
      output += "\r\n";
      lineLength = 0;
  }
  output += content[i];
  lineLength += content[i].Length;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester