2015-04-23 2 views
1

Я хотел бы ограничить количество отображаемых символов в DropDownList:Предельное количество символов в DropDownList

@Html.DropDownList("domaines", Model.Domaines, new { @class = "form-control", @id = "domaines", autocomplet = "autocomplet",maxlength = 21 }) 

это сценарий:

  1. , если количество символов < = 18: отображается полное слово
  2. Остаток, если количество знаков> 18: первые 18 символов будут b e отображается в конкатенации к эллипсису (...).

Как это сделать?

+0

Какой тип 'Domaines'? –

+0

@ GuillermoGutiérrez коллекция объектов –

ответ

2

Вам необходимо подготовить свою модель, прежде чем отправлять ее на просмотр. Вы need to pass an IEnumerable<SelectListItem> to DropDownList(), not your own type. Вы можете использовать для этого SelectList(IEnumerable, string, string) constructor.

Как усечь строки с эллипсисом был дан ответ в How do I truncate a .NET string? и Ellipsis with C# (ending on a full word).

В контроллере:

// ... initialize model. 

foreach (var domainModel in model.Domaines) 
{ 
    // Assuming the display member you want to truncate is called `DisplayString`. 
    // See linked questions for Truncate() implementation. 
    domainModel.DisplayString = domainModel.DisplayString.Truncate(18); 
} 

// Assuming the `Domaines` type has a `Value` member that indicates its value. 
var selectList = new SelectList(model.Domaines, "Value", "DisplayString"); 

// Add a `public SelectList DomainSelectList { get; set; }` to your model. 
model.DomainSelectList = selectList; 

return View(model); 

На ваш взгляд:

@Html.DropDownList("domaines", Model.DomainSelectList, new { ... }) 
Смежные вопросы