Я новичок в Telerik Grid, и мне было интересно, есть ли возможность использовать Telerik Grid таким образом, чтобы я связал один столбец с массивом строк, а затем каким-то образом перебрал его, чтобы показать элементы массива в виде списка.
StoreViewModel: (Один магазин может иметь несколько дисплеев)
public string Name { get; set; }
public string[] StoreDisplays { get; set; }
Контроллер:
private IQueryable<StoreViewModel> GetRetailers()
{
var stores = from sg in db.Store
select new RetailerViewModel
{
Name = sg.sg_Name,
Name = sg.sg_Name,
StoreDisplays = ( from ca in db.Categories.Where(item => item.c_ParentId == null)
join sd in db.StoreDisplays.Where(item => item.sd_StoreGroupId == sg.sg_Id)
на ca.c_Id равен sd.sd_CategoryIdinto gj
from subpet in gj.DefaultIfEmpty()
select (ca.c_Name)).ToArray<string>()
};
return stores;
}
Index.aspx
<%= Html.Telerik().Grid<StoreLocatorBackOffice.Models.RetailerViewModel>(Model) <br/>
.Name("Grid")
.Columns(columns =>
{
columns.Bound(sg => sg.Name)
columns.Bound(sg => sg.StoreDisplays);
})
.DataBinding(dataBinding => dataBinding
.Ajax()
.Select("_Index", "Retailer", true)
)
.Scrollable(scrolling => scrolling.Enabled(false))
.Sortable(sorting => sorting
.OrderBy(sortOrder => sortOrder.Add(p => p.Name).Ascending()))
.Pageable(settings => settings.PageSize((int)ViewData["pageSize"]))
.Filterable(filtering => filtering.Enabled(true))
.Footer(true)
%>
В настоящее время он отображается так.
Name Store Display
Store#1 Display#1Display#2Display#6
Store#2 Display#3Display#9
И хочу кое-как показать это следующим образом.
Name Store Display
Store#1 Display#1
Display#2
Display#6
Store#2 Display#3
Display#9