ASP.NET MVC, реализация MVC-Grid с интерактивными элементами
Потратив много времени на исследования, я наконец-то нашел подходящую сетку для моего приложения ASP.NET MVC, это mvc-grid. Теперь, после его реализации все выглядит хорошо, но я заметил, что отсутствует одна важная функция, я не могу нажимать на элементы (столбцы). Насколько я вижу, нет такого свойства, чтобы сообщать одному из столбцов, что он кликабелен (или даже вся строка может быть кликабельна и менять цвет при нажатии). Но мне нужно, чтобы он был кликабельным, чтобы отображать детали выбранного элемента.
Кто-нибудь реализовал этот вид Grid и имеет какую-либо информацию о том, как сделать столбцы фактическими ссылками (кнопками...) и, например, вызвать функцию javascript?
Вот код сетки:
@(Html
.Grid(Model)
.Build(columns =>
{
columns.Add(model => model.Name).Titled("Name");
columns.Add(model => model.Surname).Titled("Surname");
columns.Add(model => model.Age).Titled("Age");
})
.Pageable(pager =>
{
pager.PagesToDisplay = 2;
pager.RowsPerPage = 4;
})
.Filterable()
.Sortable()
)
Спасибо
1 ответ
Я нашел решение для этого компонента Grid. Мне просто нужно добавить столбец следующим образом:
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => @<a href="/INV_Locations/Edit/@o.Id" class="btn btn-success btn-sm noDecoration"><span class="glyphicon glyphicon-pencil"></span> Edit</a>).SetWidth(15);
На самом деле это был первый компонент, который я использовал, но так как он не обеспечивает Ajax Paging, мне пришлось переключиться (хотя эти два компонента довольно похожи)
Я пытался использовать этот метод с компонентом, который я использую, но нет такого метода, как RenderValueAs
есть метод RenderedAs
но он не принимает те же аргументы, и когда я использую его как RenderValueAs
метод я получаю ошибку:
Cannot convert lambda expression to type 'object' because it is not a delegate type
Я предполагаю, что должен быть способ реализовать столбец как ссылку (иначе сетка была бы бесполезна), но нет документации, на которую я мог бы взглянуть, поэтому я надеюсь, что кто-то уже сделал это и может дать мне несколько советов
Спасибо