2014-09-15 2 views
0

У меня есть несколько веб-сеток в одном представлении, все работают отлично, за исключением того, что мне теперь нужно сделать одну сетку динамической. Он будет заполняться после того, как пользователь сделает определенные выборы в фильтрах ddl. В сетке не будет источника данных на pageload, мне нужно будет отправить запрос json на контроллер, но как создать заполнитель для сетки? Я не могу использовать @ grid.GetHTML (...)Создание динамического WebGrid после выбора пользователя (MVC4)

потому что он выдает ошибку, требующую источника данных. Я объявлял сетку с моделью первоначально:

var gridHistory = new WebGrid(
    Commissions.Models.CommissionHistoryModel.getCommissionHistory()); 

Но теперь, когда я не знаю, данные мне нужно до тех пор, после того, как пользователь делает выбор, я не буду пытаться сделать что-то вроде этого (который бросает ошибка, так как я не поставляет источник данных):

var gridHistory = new WebGrid(); 

Как я могу поставить источник данных, когда у меня нет его во время выполнения?

ответ

0

вы можете создать частичное действие (с атрибутом httpget), возвращая PartialView, который содержит динамический WebGrid. Каждый раз, когда пользователь вносит изменения в ddl, вы должны сделать частичным через $ .ajax для некоторого заполнителя в главном представлении.

0

Я считаю, что WebGrid имеет недостаток в том, что вы не выполняете пейджинг на уровне базы данных. Если у вас большой объем данных, у вас будут проблемы с производительностью.

Возможно, вас заинтересует Dynamic MVC (http://dynamicmvc.com). Он будет выполнять динамическую сортировку, фильтрацию и пейджинг на уровне базы данных. Он также предоставляет html в частичных представлениях, поэтому вы можете настроить html непосредственно в более стиле mvc вместо стиля управления webforms.

Смежные вопросы