Если вам легко выполнить объединение с помощью NewLine
, попробуйте "<br />"
вместо System.NewLine
.
В противном случае, какой тип данных у вашего свойства ProductListItem.Categories
?Если это List<String>
или какой-то другой IEnumerable
, вы можете использовать столбец шаблона вместо связанного столбца.Вы используете item
для ссылки на текущий ProductListItem
в шаблоне:
@(Html.Telerik().Grid<ProductListItem>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.Current.Name).Sortable(true).Filterable(false).Width(150);
columns.Template(
@<text>
@String.Join("<br />", item.Categories)
</text>)
.Sortable(true).Filterable(false).Width(200);
//other column bindings...
})
.DataBinding(dataBinding => dataBinding.Ajax().Select(Model.GridAjaxRequestAction.ActionName, Model.GridAjaxRequestAction.ControllerName))
.Pageable(settings => settings.Total(Model.TotalRow))
.EnableCustomBinding(true)
.Sortable()
.Filterable()
Другой вариант может состоять в том, чтобы создать таблицу в столбце шаблона и оставить свой ProductListItem.Categories
как List
, например, this.Categories = entity.Categories.Select(o => o.Current.Name).ToList();
@(Html.Telerik().Grid<ProductListItem>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.Current.Name).Sortable(true).Filterable(false).Width(150);
columns.Template(
@<text>
<table border=0>
@foreach(var category in item.Categories){
<tr><td>@category</td></tr>
}
</table>
</text>)
.Sortable(true).Filterable(false).Width(200);
//other column bindings...
})
.DataBinding(dataBinding => dataBinding.Ajax().Select(Model.GridAjaxRequestAction.ActionName, Model.GridAjaxRequestAction.ControllerName))
.Pageable(settings => settings.Total(Model.TotalRow))
.EnableCustomBinding(true)
.Sortable()
.Filterable()