検索フォーム投稿に基づいて剣道グリッドを更新します
-
20-12-2019 - |
質問
私は検索をたくさんやっていますが、これに対する明確な答えを見つけていません。私はセットアップテキストボックスと送信ボタンとKendo UIグリッドを持っています。その基準に基づいて結果を返すように、データをグリッドのデータソースに投稿したいと思います。私はMVCラッパーを使用していません。
編集: 私は近づいたが、私が送信をクリックしたときにPOSTデータを送るようにデータソースを送るように思われることはできないようです。私はデバッグしています( "#fmsearch")。jQueryプラグインを押すことは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 Action
[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());
. 所属していません StackOverflow