c#/asp.net 및 json.net과 함께 jqgrid를 사용하는 방법 (및 ajax.net 물건이 없음)?
-
20-08-2019 - |
문제
좋아, 나는 이것을 며칠 동안 조사해 왔으며 내가 무엇을 잘못하고 있는지 확실하지 않다. C#/ASP.NET 및 오픈 소스 도구와 함께 JQGRID를 사용하는 방법이있는 사람이라면 어디서 찾을 수 있는지 알려주십시오. 디버깅에 사용할 수있는 괜찮은 문서 또는 도구를 찾는 것에 대한 팁은 이것도 가장 높이 평가 될 것입니다 (JS/JQuery에 아주 익숙하지 않습니다). 기본적으로 편집 기능이 필요하므로 다른 분명한 솔루션을 간과하고 있다면 알 수 있습니다 ... 가능한 경우 ajax.net을 사용하지 않으려 고합니다.
나는 여기서 정말 명백한 것을 간과하는 것 같습니다.
다음 예에서는 JQGRID가 표시되지만 데이터가 표시되지 않습니다.
관련 JavaScript는 다음과 같습니다.
jQuery(document).ready(function(){
jQuery("#role_assignment_table").jqGrid({
url:'http://localhost:4034/WebSite2/PageItemHandler.asmx/GetPageItemRolesJson?id=3',
mtype: 'GET',
contentType: "application/json; charset=utf-8",
datatype: "jsonstring",
colModel:[
{name:'Id', label:'ID', jsonmap:'Id'},
{name:'Title', jsonmap:'Title'},
{name:'AssignedTo', label:'Assigned To', jsonmap:'AssignedTo'},
{name:'Assigned', jsonmap:'Assigned'},
{name:'Due', jsonmap:'Due'},
{name:'Completed', jsonmap:'Completed'}
],
jsonReader: {
page: "Page",
total: "Total",
records: "Records",
root: "Rows",
repeatitems: false,
id: "Id"
},
rowNum:10,
rowList:[10,20,30],
imgpath: 'js/themes/basic/images',
viewrecords: false,
caption: "Role Assignments"
});
});
HTML :
<table id="role_assignment_table" class="scroll" cellpadding="0" cellspacing="0" />
생성 된 JSON : JQGRID에 연결하는지 또는 JQGRID가 JSON 또는 WebMethod가 마음에 들지 않는지 확실하지 않지만 적절한 URL로 가서 JSON 결과 문자열을 얻을 때 직접 호출 할 수 있습니다.
{"Page":"1","Total":1.0,"Records":"4",
"Rows":[
{"Id":1,"Item":null,"Title":"Story Manager","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":2,"Item":null,"Title":"Analysis","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":3,"Item":null,"Title":"Narrative","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"},
{"Id":4,"Item":null,"Title":"Graphic","AssignedTo":null,"Assigned":"\/Date(1245186733940-0500)\/","Due":"\/Date(1248383533940-0500)\/","Completed":"\/Date(1247087533940-0500)\/"}
]
}
건배, 윌리엄 라일리 랜드
해결책
다른 작업을 수행하기 전에 다음을 다운로드하여 설치하십시오.
http://www.fiddler2.com/fiddler2/
JQGRID 요청에 의해 JSON 데이터를 가져 오기위한 요청에 따라 요청하고 다시 전송되는 내용을 정확하게 볼 수 있습니다.
작동하는 JQGRID에 대한 코드가 있으며 여기에 다른 것이 있습니다.
datatype: "json"
당신 대신 :
datatype: "jsonstring"
나는 또한 필드가 있습니다 colNames
열 이름을 포함하는 문자열 배열입니다.
마지막으로, 나는 a pager
페이징 컨트롤을 저장하는 요소를 식별하고 div입니다.
다른 팁
ASP.NET에서 날짜는 JSON으로 직렬화됩니다 "/날짜 (진드기)/" JQGrid는 해석 할 수 없습니다. 가능한 해결책 (게시하다):
- 그리드에 대한 커스텀 포맷터를 작성하십시오
- 그리드로 보내는 데이터 변경 (형식으로 날짜를 문자열로 보내면)
JQGRID로 날짜 표시를 어떻게 구현했는지 알려주세요.
감사합니다.
사례 민감한 속성에주의하십시오 데이터 형식 그 의미입니다 데이터 형식 대문자로 티.
나는 정확히 같은 문제가 있었다! 제가 생각해 낸 해결책은 사용자 정의 자바 스크립트 포맷터를 만드는 것입니다.
$(this).jqGrid({
...
colModel: [
{
name: 'SomeDate', index: 'SomeDate', width: 100, formatter: ndateFormatter }
}],
...
});
// Convert C# json Date.
function ndateFormatter(cellval, opts, rwdat, _act) {
var time = cellval.replace(/\/Date\(([0-9]*)\)\//, '$1');
var date = new Date();
date.setTime(time);
return date.toDateString();
}
jqgrid가 asp.net과 함께 일하는 데 문제가있는 경우 살펴보십시오. 여기. 이것은 당신에게 많은 시간을 절약해야합니다.