Avatar billede BStorgaard Nybegynder
05. marts 2013 - 10:17 Der er 3 kommentarer og
1 løsning

cropping af tekst i C#

Jeg er igang som web-integrator på aalborg tekniske skole, og skal lave et site, hvor jeg lave så hvis der er for meget tekst så skal den vise 3 "..." og så "read more".

det jeg har fået lavet indtil videre ser sådan ud:
TextTools.cs:

public class TextTools
{
    public string CropText(string input, int length, bool DoDots)
    {
        string result = input.Substring(0, length);

        if (input.Length < length)
        {

        }

        else
        {
            result += "...";
        }

        return result;
    }
}



NewCropping.aspx:

<div>
  <asp:Button ID="btn_cropit" runat="server" Text="Crop"     
  OnClick="btn_cropit_Click" />
  <asp:TextBox ID="txt_input" runat="server"></asp:TextBox>
  <asp:Label ID="lbl_result" runat="server" Text=""></asp:Label>
</div>



NewCropping.aspx.cs:

public partial class NewsCropping : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btn_cropit_Click(object sender, EventArgs e)
    {
        TextTools Cropit = new TextTools();
        lbl_result.Text = Cropit.CropText(txt_input.Text, 5, true);
    }
}


problemet er bare, at den melder fejl når jeg ikke har fyldt mit input ud, så hvis der f. eks. kun er 4 tegn ud af de 5 så melder den fejl, nogen der kan hjælpe mig her? er meget lost.
Avatar billede LeChox Nybegynder
05. marts 2013 - 10:54 #1
Noget i denne stil måske? (Har egentlig bare flyttet din Substring ind i 'else', da den ikke skal køres hvis input er kortere end length - går jeg ud fra)

public string CropText(string input, int length, bool DoDots)
    {
        string result = input;

        if (input.Length < length)
        {
            return result;
        }

        else
        {
            result = result.Substring(0, length);
            result += "...";
        }

        return result;
    }


Bruger selv en metode næsten magen til:

public string CropText(string myString, int length, string ending)
    {
        if (myString.Length <= length)
        {
            return myString;
        }
        else
        {
            return myString.Substring(0, length) + ending;
        }
    }
Avatar billede BStorgaard Nybegynder
05. marts 2013 - 12:00 #2
Takker for hjælpen LeChox

det var lige det jeg manglede for at fuldende opgaven

Mhv. BStorgaard
Avatar billede Poko1 Ekspert
05. marts 2013 - 12:41 #3
Burde du så ikke have bedt LeChox om at sende et svar og tildele point??
Avatar billede BStorgaard Nybegynder
06. marts 2013 - 08:45 #4
har lige skrevet en besked til ham herinde omkring det ;)
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