문제

이 질문은 거울에 이 게시물 에 Telerik 의 포럼 게재하고 있습니다 어제입니다.

나는 트로 HierarchicalDataSource 및 제 질문은 간단하다:액세스할 수 있는 현재 dataItem 에서 전송됩니다.읽는 기능입니까?

예를 들어,이 코드:

new kendo.data.HierarchicalDataSource({
    transport: {
        read: function(options) {
            // Here i'll prepare my url to be called
            return "my/controller/" + dataItem.Id;
        }
    }
});

에 액세스하고 싶 dataItem 의 속성을 확장 현재 노드가 내부에 읽는 기능입니다.이것이 가능한가요?

내가 노력했다 하지만 범위 안에는 기능을 제공스의 이외의 아무것도니다.

업데이트:

@OnaBai 제안했-내 경우- Value 속성을 주어,다음 모델:

{
    id: "Value",
    hasChildren: "HasChildren"
}; 

그러나고 싶은에 액세스할 수 있는 더 많은 단지 Id 그러나 전체 dataItem.내가 하려고 했 추가 dataItem 의 또는 요구 속성을 model 지 않는 일:

{
    id: "Value",
    hasChildren: "HasChildren",
    fields: {
        ParentId: { type: "string" }
    }
}; 

ParentId 에서 온 resquest 고서 accesible dataItem, 지 optionsread 기능입니다.또 다른 방법으로는 그렇게 하라고 하셨을까?

업데이트 2:

까다로운 방법이 달성될 수 있으로 설정하여 모델의 id uid:

{
    id: "uid"
}

기능 받을 것이 uid 그리고 당신은 그것을 얻을 수 있습니다 dataSource 에서으로,예를 들어, dataSource.getByUid().

도움이 되었습니까?

해결책

Idid 에서 정의한 모델을 해야 하:

new kendo.data.HierarchicalDataSource({
    transport: {
        read: function(options) {
            return "my/controller/" + options.Id;
        }
    }
});

예를 참조하십시오 여기: http://jsfiddle.net/OnaBai/mE4zZ/2/

편집:액세스해야 하는 경우 전체 모델은 다음을 알 id 당신이 사용할 수 있는 get 는 방법에 대한 데이터 원본을 받고 항목입니다.

예제:

var ds = new kendo.data.HierarchicalDataSource({
    transport: {
        read: function(options) {
            if (options.Id) {
                var item = ds.get(options.Id);
                // Do whatever else you need with Item
            }
            return "my/controller/" + options.Id;
        }
    }
});

수정 JSFiddle 기 http://jsfiddle.net/OnaBai/mE4zZ/3/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top