У меня есть Kendo UI GRID (MVC) с более чем 100 столбцами. Не все столбцы видны при загрузке. По умолчанию видимыми столбцами являются 10. На странице рядом с сеткой есть флажки, в которых перечислены все столбцы. Если вы нажмете на флажок, в зависимости от того, отмечен он или нет, столбец появится или будет скрыт. Беда в том, что рендер сетки занимает почти 20 секунд, когда количество строк тоже огромно (и время увеличивается). Как лучше всего обрабатывать большое количество столбцов?
MVC Kendo UI Grid — более 100 столбцов
comment
Ваша сетка вообще выгружается?
- person Robin Giltner   schedule 30.07.2015
comment
он выгружается, клиентская сторона. Я пробовал разорвать боковую подкачку, но прирост производительности незначителен.
- person Anthony Fernandes   schedule 30.07.2015
comment
реально больше 100? какой смысл показывать всю эту информацию.. даже ваш экран не может отображать все эти столбцы одновременно, в этом случае вы должны использовать горизонтальную прокрутку..
- person Dion Dirza   schedule 31.07.2015
comment
Ну, клиент хочет внешний вид листа Excel со всеми столбцами в формах в одной таблице.
- person Anthony Fernandes   schedule 31.07.2015
comment
@AnthonyFernandes, вы можете изучить другие альтернативы, такие как Wijmo
- person dnlgmzddr   schedule 01.08.2015
comment
Спасибо, да, я думаю, это был бы хороший вариант!
- person Anthony Fernandes   schedule 03.08.2015
Ответы (1)
Я думаю, что приводить все 100 колонок для записи — не лучший способ работы. Возможно, вам нужна самая важная информация (максимум 10 столбцов) для всех записей и подробный обзор (с остальной информацией для конкретной записи, которую вы хотите проверить)
Если вы хотите увидеть более подробный пример, посмотрите здесь
мой подход следующий
@(Html.Kendo().Grid<YOURCLASS>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(e => e.imporantColumn1);
columns.Bound(e => e.imporantColumn2);
columns.Bound(e => e.imporantColumn3);
})
.Sortable()
.Pageable()
.Scrollable()
.ClientDetailTemplateId("template")
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("HierarchyBinding_theBasicData", "Grid"))
)
.Events(events => events.DataBound("dataBound"))
)
и подробный шаблон
<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().TabStrip()
.Name("tabStrip_#=ID#")
.SelectedIndex(0)
.Items(items =>
{
items.Add().Text("details").Content(@<text>
@(Html.Kendo().Grid<YOURCLASS>()
.Name("grid_#=ID#")
.Columns(columns =>
{
// the order columns
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("HierarchyBinding_theRestOfInfo", "Grid", new { ID= "#=ID#" }))
)
.Pageable()
.Sortable()
.ToClientTemplate())
</text>
);
})
.ToClientTemplate())
</script>
person
cycopepe
schedule
30.07.2015
Спасибо. Тем не менее, мы думали об этом, но клиент хочет больше внешнего вида Excel с одной строкой на запись, а не с детализацией.
- person Anthony Fernandes; 31.07.2015