限制mvc 2中列表框的项目长度

时间:2011-02-26 08:37:51

标签: asp.net-mvc-2 listbox limit

在我的MVC 2应用程序中,我有一个列表框

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

我使用“list_style”样式限制了我的列表框宽度。

我的问题是我的列表框中的某些项目的长度大于我的列表框宽度。 如果长度太长,我需要用“...”限制显示项目的长度。 所以我的文字将是'你好吗......' 因为“你好,亲爱的朋友,你好吗!” 谢谢, 问候

3 个答案:

答案 0 :(得分:1)

你应该把它放在一个扩展方法中,比如

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()
                                     };

更清洁,更可重复使用。

答案 1 :(得分:0)

idid this:

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()
                                         };

答案 2 :(得分:0)