Announcement

Collapse
No announcement yet.

gridview im Itemtemplate nur ersten x Zeichen anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • gridview im Itemtemplate nur ersten x Zeichen anzeigen

    hallo,
    ich versuche mich gerade daran in einem Gridview im Itemtemplate für ein Feld das per SQL alle Daten enthält nur 200 Zeichen anzuzeigen.

    Der Plan ist dann im EditItemTemplate alles anzuzeigen.

    Wie muss ich den Code umschreiben das im Itemtemplate nur die ersten 200 Zeichen angezeigt werden?

    Code:
          <asp:TemplateField HeaderText="AuftragohneHTML" SortExpression="AuftragohneHTML">
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("AuftragohneHTML") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("AuftragohneHTML") %>'></asp:Label>
                        </EditItemTemplate>
                         <ItemStyle VerticalAlign="Top" />
                    
                    </asp:TemplateField>

  • #2
    Code:
          
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# (Eval("AuftragohneHTML")).ToString().Substring(0,200) %>'></asp:Label>
                        </ItemTemplate>
    Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

    Comment


    • #3
      Hallo ich bin neu hier und habe aktuell mit dem gleichen Problem zu tun.
      Was ist, wenn die Textlänge des Label-Feldes unter 200 Zeichen liegt?
      Ich bekomme dann eine Parser-Fehler angezeigt.
      Gibt es nicht sowas wie eine maxlength-Funktion?

      Comment


      • #4
        Var 1. Über Funktion
        Code:
        <asp:Label ID="CheckedOut" runat="server"
        text='<%# CheckedOutValue(((Eval("AuftragohneHTML")))) %> />
        
        protected string CheckedOutValue(string checkedOut)
        {
        if(checkedOut.Length > 200 )
        return checkedOut.Substring(0,200)
        }
        Var 2 Über syntaktische Zucker:

        Code:
                            <ItemTemplate>
                                <asp:Label ID="Label1" runat="server" 
        Text='<%# ((Eval("AuftragohneHTML")).ToString().Length > 200) ? 
        ((Eval("AuftragohneHTML")).ToString().Substring(0,200)) : 
        ((Eval("AuftragohneHTML")).ToString()) %>'></asp:Label>
                            </ItemTemplate>
        Hab aus dem Kopf geschrieben, also Syntax überprüfen.
        Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

        Comment


        • #5
          oder Variante 3


          Code:
                  public string FormatDescription(object Description, Int32 Zeichenanzahl)
                  {
                      string desc = Convert.ToString(Description);
                      if (desc.Length > Zeichenanzahl)
                          return desc.Substring(0, Zeichenanzahl) + "...";
                      else
                          return desc;
                  }

          Aufruf dann über
          Code:
          <asp:Label ID="Label1" runat="server" ReadOnly="True" Text='<%# FormatDescription(Eval("AuftragohneHTML").ToString(),200).ToString() %>'></asp:Label>

          Comment


          • #6
            Oder einfach ein PresentationModel dafür definieren was eigentlich ein noch sauberer Weg dafür wäre. Das ließe sich im Gegensatz zum View auch noch testen.

            Comment

            Working...
            X