ASP.NET MVC: отображение JSON в сетке, где данные JSON известны только во время выполнения - PullRequest
0 голосов
/ 02 сентября 2011

Я потратил много времени, пытаясь решить это, но пока безуспешно. По сути, будет набор данных JSON, поступающий через jQuery GET или аналогичный, который будет отличаться по количеству столбцов и именам столбцов. Типы данных будут отличаться. Один раз это может быть Имя = Боб, Возраст = 50 (и т. Д.), А в следующий раз это может быть имя, адрес и род деятельности.

Все, что я хотел бы сделать, это представить в сетке в моем представлении MVC, которая в идеале обеспечивает некоторую подкачку / сортировку и т. Д. Имена столбцов должны быть получены из меток в JSON. Я рад заплатить за такой компонент, если это необходимо.

Вот и все! Если мне это не удастся, я думаю, что мне просто придется рендерить HTML и обходиться без других функций.

Спасибо

PS. Фактические данные будут поступать из анонимных коллекций, сгенерированных запросами LINQ в контроллере. Привязка к такому типу была бы идеальным решением, если бы кто-нибудь знал, как (пейджинг по требованию был бы хорош), но пока не повезло. Два дня, когда сетка Telerik MVC связывалась с анонимным типом или с любым его преобразованием (динамика, таблицы и т. Д.), Пока не увенчались успехом. Я добавил telerik MVC и Jqgrid в качестве тегов на случай, если гуру будут отслеживать те разделы, которые знают ответ.

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Возможно, вы захотите взглянуть на плагин DataTables jQuery .Он имеет встроенный пейджинг, сортировку и множество других интересных функций.В большинстве примеров показано отображение всей таблицы на странице, а затем она переходит на страницу подкачки и т. Д. Однако она также поддерживает использование привязки на стороне сервера, и вот хороший пример такой привязки в ASP.NET MVC.site - jQuery DataTables и ASP.NET MVC Integration .

Я использую этот плагин уже около месяца и до сих пор очень доволен им.

1 голос
/ 02 сентября 2011

Я использую только jqGrid и не Telerik MVC, поэтому я могу помочь вам только в реализации jqGrid.

Существует несколько различных подходов к реализации переменного числа столбцов и других параметров jqGrid.

Самый простой способ - использовать метод GridUnload (см. старое демо из ответ ), воссоздающий элемент основы <table> сетки послекоторый вы можете создать новый jqGrid.Таким образом, вы можете просто вызвать $.ajax, который загружает с сервера colModel, который вам нужен, и внутри success обработчика $.ajax, который вы вызываете GridUnload , а затем создать jqGrid.

Если у вас переменное число столбцов с известным форматом, вы можете использовать другой подход, описанный здесь и здесь (см. демо и theдемо ).Нужно просто иметь несколько скрытых столбцов и внутри loadComplete сделать его видимым и перезаписать имена столбцов.

...