【发布时间】:2014-02-24 23:06:03
【问题描述】:
我一直在进行大量搜索,但没有找到明确的答案。我有一个设置文本框和一个提交按钮和一个 Kendo UI 网格。我想将数据发布到网格的数据源,以便它将根据条件返回结果。我没有使用 MVC 包装器。
编辑: 我已经更近了,但是当我单击提交时,我似乎无法让数据源发送帖子数据。我已经调试并在我的 $("#fmSearch").submit 中点击了 jquery 插件,并且我已经确认它正在将表单数据正确转换为 JSON,但似乎它没有发送更新的信息到服务器,以便 Action 可以读取它。
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()); ;
}
现在没有设置该操作来检索不同的数据,我只需要知道如何将表单连接到网格。
【问题讨论】:
-
所以代码看起来正确并且没有调用控制器方法???听起来参数可能有问题。我总是遇到这样的问题。尝试删除参数并在没有数据的情况下调用控制器
-
控制器被调用。但是没有将 postdata 发送给它。示例:我有一个默认为 1 的下拉列表。加载页面时,1 作为类别发送到控制器。调试显示其值为 1。我在文本框中输入关键字并点击提交,但关键字从未到达那里。该类别仍然作为 1 发送。就像是发布旧数据而从不发布表单中的新数据。
-
仍然需要一个答案。关于为什么会发生这种情况的任何想法?
标签: asp.net-mvc kendo-ui kendo-grid kendo-datasource