2017-02-15 2 views
1

Как говорится в заголовке: Я хочу обрезать или форматировать очень длинную гиперссылку. если текст длинный, я хочу, чтобы код знал это и заменил оставшиеся строки «...», например: «[email protected]». как только начнется «учетная запись», я хочу, чтобы его заменили на «...»Обрезка или форматирование гиперссылки asp net

Я пробовал обрезать, но он не работает.

C#:

var getContact = _ecSystem.GetContact(ContactId.Value); 
    hlEmail.Text = getContact.Email.Trim(); //getContact.Email is a string. 

ASPX:

<asp:HyperLink runat="server" ID="hlEmail" NavigateUrl="#" /> 
+0

'Trim' просто удаляет пробелы с начала/конца строки. Итак, что вы хотите в основном заменить 'averylongemailaccountexample @ example.com' на' averylongemailaccount ... @ example.com'? – Pikoh

+0

Является ли это шаблоном для использования всех адресов электронной почты или вы хотите разделить адрес на известные слова? –

+0

Если длина сообщения длиннее 20 символов, я хочу, чтобы окончание было «...» – Malphai

ответ

3

Вы пробовали использовать регулярные SubString method?

var emailaddress = getContact.Email.Trim(); 
hlEmail.Text = emailaddress.Length > 20 ? emailaddress.SubString(0, 17) + "..." : emailaddress; 

Но @RahulSingh сказал, что самый элегантный способ сделать это с помощью css and the text-overflow property, то ограничить размер контейнера HTML ссылка находится внутри.

<a style="text-overflow: ellipsis; width: 50px; float: left; overflow: hidden;" href="mailto:[email protected]">[email protected]</a> 
+0

Что? В IntelliSense нет опции для подстроки? – Malphai

+0

Я не могу использовать тег , я должен использовать . – Malphai

+0

будет отображаться как тег привязки, поэтому вы можете просто прикрепить к нему стиль и придать ему ширину, если хотите ... :-) –