Pregunta

He estado haciendo mucho en la búsqueda, pero no he encontrado una respuesta clara para esto.Tengo un cuadro de texto de configuración que y un botón de envío y una cuadrícula de Kendo UI.Quiero publicar los datos en la fuente de datos de la cuadrícula para que devuelva los resultados según los criterios.No estoy usando los envoltorios de MVC.

Editar: Me he acercado más, pero parece que no puedo obtener la fuente de datos para enviar los datos de publicación cuando haga clic en Enviar.He depurado y en mi $ ("# FMSearch"). Enviarlo está golpeando el plugin jquery y he confirmado que está convirtiendo los datos de formularios a JSON correctamente, pero parece que no está enviando la información actualizada.al servidor para que la acción pueda leerla.

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() });
    });

Acción 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()); ;
    }

La acción no es la configuración para recuperar datos diferentes en este momento, solo necesito saber cómo conectar el formulario a la cuadrícula.

¿Fue útil?

Solución

encontrado el problema.Tuve esto:

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

Necesitaba ser esto:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top