Comment limiter chaîne de texte dans Eval
J'ai un lien hypertexte avec le naviguer propriété définie comme ceci:
NavigateUrl='<%# Eval("My Text") %>'
Comment puis-je limiter la chaîne de 140 caractères ?
J'ai essayé cette Eval("Mon Texte").ToString().Substring(0,140) mais si la longueur de la chaîne est de moins en moins de 140 caractères, il lève une exception.
- Peut-être écrire une méthode d'extension?
Vous devez vous connecter pour publier un commentaire.
Et encore une autre possibilité:
Edit:
Je fais comme LINQ, trop:
if (lenght > 140)
vous utiliser plus de mémoire et de temps. 🙂L'Utiliser (:
Merde j'ai comme LINQ:
Eval
que déclarer que d'obtenir les données à partir d'une base de données de retour.)Join
besoin d'un séparateur, et ce n'est pas sûrchar
être un nom valide pour le paramètre. Et le dernier mais non le moindre, l'OP semble vouloir l'utiliser dans un formulaire web, de sorte que vous ne pouvez probablement pas envelopper unstring.Join
autour de l'instruction eval (mais pas 100% sûr...). J'ai ajouté une LINQ variante sansstring.Join
à ma réponse.string.Concat
passtring.join
, vous avez raison. Fixe! Et le dernier, mais au moins, vous pouvez utiliser LINQ et d'autres méthodes avec elle.Vous pouvez essayer la méthode Tronquer comme indiqué ici:
C# Tronquer Chaîne
De le convertir à une extension de la méthode en ajoutant simplement le
this
mot-clé avant le paramètre source. Il est un peu plus compliquée, mais peut être utile dans le cas où vous avez besoin de réutiliser ailleurs...Dans votre cas, vous auriez:
Console complète application de test:
De sortie:
Similaire à Leniel de réponse, mais avec une torsion.... Parfois, j'aime ajouter des points de suspension pour démontrer la chaîne affichée a été tronqué.