Вопрос

Я делал много поиска, но не нашел четкий ответ на это.У меня есть настройки текстовых ящиков, которые и кнопка «Отправка» и «Сетка kendo UI».Я хочу опубликовать данные в DataSource Grid, чтобы он вернул результаты на основе критериев.Я не использую обертки MVC.

Редактировать: Я стал ближе, но я не могу получить данные DataSource, чтобы отправить почтовые данные, когда я нажимаю submit.Я отладил и в моем $ («# FMSearch»). Отправить его ударить плагин jQuery, и я подтвердил, что он преобразует данные формы JSON правильно, но кажется, что он не отправляет обновленную информациюна сервер, чтобы действие мог прочитать его.

JavaScript

var dsGalleryItem = new kendo.data.DataSource({
        transport: {
            read: {
                url: '@Url.Content("~/Intranet/GalleryItem/SearchGalleryItems")',
                type: "POST",
                data: $("#fmSearch").serializeFormToJSON(),
                cache: false
            }
        },
        schema: {
            model: {
                id: "galleryItemID",
                fields: {
                    galleryItemID: {
                        nullable: true
                    },
                    imageName: {},
                    collectionName: {},
                    categoryName: {},
                    lastUpdatedOn: { type: "date" }
                }
            }
        }
    });




    var gvResults = $("#gvResults").kendoGrid({
        autoBind:false,
            columns: [{
                field: "imageName",
                title: "Item Name",
                template: "<a href='@Url.Content("~/Intranet/GalleryItem/Details/")#=galleryItemID#'> #=imageName#</a>"
            }, {
                field: "collectionName",
                title: "Collection"
            }, {
                field: "categoryName",
                title: "Category"
            }, {
                field: "lastUpdatedOn",
                title: "Last Updated",
                format: "{0:M/d/yyyy}"
            }
            ],
            selectable: "row",
            change: onRowSelect,
            dataSource: dsGalleryItem
        });






    $("#fmSearch").submit(
        function (event) {
            event.preventDefault();
            dsGalleryItem.read({ data: $("#fmSearch").serializeFormToJSON() });
    });
.

Действие MVC

[HttpPost]
    public JsonResult SearchGalleryItems(string keyword, int? category, int? collection, DateTime? startDate, DateTime? endDate)
    {

        var galleryItemList = (from g in db.GalleryItems
                               //where g.imageName.Contains(keyword)
                               select new GalleryItemViewModel
                               {
                                   galleryItemID = g.galleryItemID,
                                   imageName = g.imageName,
                                   collectionName = g.collection.collectionName,
                                   categoryName = g.category.categoryName,
                                   lastUpdatedOn = g.lastUpdatedOn
                               });

        var galleryItemCount = Json(galleryItemList.ToList());

        return Json(galleryItemList.ToList()); ;
    }
.

Действие не установлено, чтобы получить различные данные прямо сейчас, мне просто нужно знать, как подключить форму к решетке.

Это было полезно?

Решение

нашел проблему.У меня было это:

dsGalleryItem.read({ data: $("#fmSearch").serializeFormToJSON() });
.

Это нужно было быть это:

dsGalleryItem.read($("#fmSearch").serializeFormToJSON());
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top