У вас есть несколько вариантов, когда нужно разрешить пользователям видеть конкретное представление данных, которые должна представлять ваша таблица. Хотя для каждого пользователя используется отдельное объявление Grid, проще всего было бы просто показать или скрыть столбец той же таблицы.
Это можно сделать «из коробки» с помощью встроенного средства выбора столбцов, которое поставляется с компонентом Grid, как можно увидеть в этой демонстрации . Щелчок правой кнопкой мыши по любому из заголовков предоставляет пользователю простой интерфейс для выбора отображаемых столбцов.
В качестве альтернативы вы можете использовать клиентские API-вызовы hideColumn / showColumn, которые могут принимать либо имя поля, к которому привязан столбец, либо индекс в качестве параметра. Быстрый пример (хотя он скрывает только определенный вами столбец):
<input type="text" id="columnHider"/>
<br />
<button type="button" id="columnButton">Click</button>
@model IEnumerable<Customer>
@(Html.Telerik().Grid(Model)
.Name("TelerikGrid")
.Columns(columns =>
{
columns.Bound(c => c.CustomerID);
columns.Bound(c => c.CompanyName);
columns.Bound(c => c.ContactName);
columns.Bound(c => c.Address);
columns.Bound(c => c.City);
})
.Pageable(pageSettings => pageSettings.Enabled(true).PageSize(10))
.ColumnContextMenu()
)
<script type="text/javascript">
$(document).ready(function () {
$("#columnButton").click(function () {
var grid = $("#TelerikGrid").data("tGrid");
var columnString = $("#columnHider").val();
grid.hideColumn(columnString);
});
});
</script>
Это позволяет вам определить собственный интерфейс для скрытия / отображения столбцов.