ограничить длину элемента списка в MVC 2 - PullRequest
1 голос
/ 26 февраля 2011

В моем приложении MVC 2 у меня есть список

<%: Html.ListBoxFor(m => m.SelectedQuestionIds[cnt1], Model.QuestionList, new { @class = "list_style" })%>

Я ограничил ширину списка в стиле «list_style».

Моя проблема в том, что некоторые элементы в моем списке имеют длину, превышающую ширину моего списка. мне нужно ограничить длину элемента, показанного с помощью «...», если длина слишком велика. так что мой текст будет "как дела ..." для "Как ты, мой дорогой друг, ты в порядке!" Спасибо, С уважением

Ответы [ 3 ]

1 голос
/ 26 февраля 2011

Вы должны поместить это в метод расширения, что-то вроде

public static class StringExtensions {

  public static string TrimLength(this String text, int length) {
    if (text != null && text.Length > length) {
      return text.Substring(0, length - 1);
    }
    return text;
  }

  public static string TrimLengthWithEllipsis(this String text, int length) {
    if (text != null) {
      return TrimLength(text, length) + "..."; 
    }
    return text;
  }

}

Тогда вы можете использовать

model.QuestionList = from question in model.Questions
                                     select new SelectListItem
                                     {
                                         Text=question.QuestionDescription.TrimLengthWithEllipses(48),
                                         Value=question.QuestionID.ToString()
                                     };

Гораздо чище и многоразовее.

0 голосов
/ 02 марта 2011
0 голосов
/ 26 февраля 2011

определили это:

model.QuestionList = from question in model.Questions
                                         select new SelectListItem
                                         {
                                             Text=question.QuestionDescription.Length>48?question.QuestionDescription.Substring(0,47)+" ...":question.QuestionDescription,
                                             Value=question.QuestionID.ToString()
                                         };
...