Question

Je fais beaucoup de recherche mais je n'ai pas trouvé de réponse claire pour cela.J'ai une configuration de textes de texte qui et un bouton d'envoi et une grille de Kendo UI.Je souhaite publier les données sur DataSource du réseau afin qu'elle renvoie les résultats en fonction des critères.Je n'utilise pas les wrappers MVC.

EDIT: Je me suis rapproché mais je ne peux pas sembler obtenir la source de données pour envoyer les données de poste lorsque je clique sur Soumettre.J'ai débogué et dans mon $ ("# fSMearch"). Soumettre, il frappe le plug-in jquery et j'ai confirmé qu'il convertissait correctement les données de formulaire à JSON, mais il semble que cela n'envoie pas l'information mise à jourau serveur afin que l'action puisse la lire.

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

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

L'action n'est pas configurée pour extraire des données différentes maintenant, je dois juste savoir comment connecter le formulaire à la grille.

Était-ce utile?

La solution

a trouvé le problème.J'avais ceci:

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

Cela devait être ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top