나는 우리가 할 수없는 모든 것을 관리하기 위해 jQuery/Javascript 코딩과 함께 프론트 엔드 용 KENDOUI를 사용하는 프로젝트를 진행하고 있습니다. 프레임 워크 자체.".toJSON"은 무엇이며 어떻게 "되돌리기"또는 "되돌릴 수 있습니까?"
나는 내가 뭘하려고 오전 여기 정렬 및 클라이언트 측을 필요로 검도 그리드되어 있습니다 -
var tPositiondata = _DetailsGridDS.data();
// sort position datasource in order to bind treeview
tPositiondata = tPositiondata.toJSON().sort(function (a, b) {
{
if ((a.DisplayText.localeCompare(b.DisplayText)) < 0) { return -1; }
else if ((a.DisplayText.localeCompare(b.DisplayText)) > 0) { return 1; }
}
});
//re-initialize the grid with new datasource
$("#DivDetailsTable").empty();
$("#DivDetailsTable").kendoGrid({
autobind: false,
scrollable: true,
height: 333,
pageSize: 10,
dataSource: tPositiondata,
dataBound: OnReceivedDataFromDatasource,
columns: [
{
field: "UniqueValue",
title: _ColumnHeaderUniqueValue
},
{
//field: "DisplayTextTranslation",
title: _ColumnHeaderDisplayText,
template: '#= GetTranslation(Id) #'
},
{
field: "CodeAttribute",
title: _ColumnHeaderCodeAttribute
},
{ command: [{ text: _ButtonEdit, className: "k-button k-button-icontext buttonEdit k-grid-Edit" }, { text: _ButtonDelete, className: "k-button k-button-icontext buttonDelete k-grid-Delete" }, { text: " ", className: "buttonUp", width: 15 }, { text: " ", className: "buttonDown", width: 15}], text: "", title: " ", width: 230 }
],
editable: "inline"
});
이제 문제는, 변수 "tPositionData"는 "_DetailsGridDS에 다시 할당 할 수 없다는 것입니다 왜냐하면 그들은 분명히 같은 유형이나 형식이 아니기 때문입니다. 이 때문에 전역 변수 "_DetailsGridDS"에는 업데이트 된 정렬 된 데이터가 없습니다. 코드에서 다른 곳을 참조하면 정렬 된 데이터가 없습니다.
사람이 정렬 후에 .toJSON 호출을 "실행 취소"/ "취소"할 수 있도록 도와 주시겠습니까? 다시 _DetailsGridDS에 할당 할 수 있습니까? 아니면 누군가 내 주변 변수가 항상 업데이트되도록 임시 해결책을 제시 할 수 있습니까? 최신 정렬 된 데이터가 있습니까?
http://api.jquery.com/jQuery.parseJSON/는 작동해야합니다 –
왜 코드에서'toJSON()'이 사용되는 것입니까? 'tPositiondata.toJSON(). sort()'은 의미가 없기 때문에 문자열을 정렬 할 수 없습니다. 먼저 정렬 한 다음'toJSON()'을 사용하십시오 :'tPositiondata.sort (/ * 당신의 정렬 함수 * /). toJSON()'. 또한 두 항목이 동일하면 정렬 함수가 0을 리턴해야합니다. – nnnnnn
TiesonT. - 그것이 작동하지 않는다면 null 값을 얻습니다 : | @nnnnnn : [object object]에 "sort"라는 메서드가 없다는 오류가 발생하기 전에 시도했습니다. – Sandeep