1
저는 많은 검색을 해왔지만 이에 대한 명확한 답을 찾지 못했습니다. 나는 그 텍스트 박스와 제출 버튼과 검도 UI 그리드를 설정했다. 그리드의 데이터 소스에 데이터를 게시하여 기준에 따라 결과를 반환하기를 원합니다. 나는 MVC 래퍼를 사용하지 않는다.검색 양식을 기반으로 검도 그리드를 업데이트하십시오.
EDIT : 나는 더 가까이 왔지만 제출을 클릭하면 데이터 소스에 게시물 데이터를 보내지 못하는 것 같습니다. 나는 디버깅을했고 내 $ ("# fmSearch")에 제출했다. jquery 플러그인을 사용하여 제출하면 양식 데이터가 JSON으로 제대로 변환되고 있음을 확인했지만 업데이트 된 정보를 전송하지 않는 것처럼 보였다. 작업을 읽을 수 있도록 서버에 전달합니다.
자바 스크립트
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()); ;
}
동작은 지금 그냥 그리드에 양식을 연결하는 방법을 알 필요가 다른 데이터를 검색하도록 설정되지 않습니다.
그래서 코드가 올바른 외모와 컨트롤러 메소드가 호출되지 않습니다 ??? 매개 변수와 관련이있는 것 같습니다. 나는 항상 그런 문제를 겪는다. 매개 변수를 제거하고 데이터가없는 컨트롤러를 호출하십시오. – CSharper
컨트롤러가 호출됩니다. 그러나 postdata가 전송되지 않습니다. 예 : 기본적으로 1로 설정된 드롭 다운이 있습니다. 페이지가로드되면 1이 카테고리로 컨트롤러에 전송됩니다. 디버그의 값은 1로 표시됩니다. 텍스트 상자에 키워드를 입력하고 제출을 누르지 만 키워드가 결코 도달하지 않습니다. 카테고리는 여전히 1로 보내집니다. 그것은 이전 데이터를 게시하고 양식에서 새 데이터를 게시하지 않는 것과 같습니다. – Lrayh
답이 여전히 필요합니다. 왜 이런 일이 일어나고 있는지에 대한 생각? – Lrayh