2017-04-10 3 views
0

누구든지 그리드에서 DateTime 형식을 올바르게 지정하는 방법을 알고 있습니까? (이 데이터 유형도 지원됩니까?).검도 각 2 그리드 DateTime 형식

필자가 열의 "필터"속성에 무엇을 넣든 내 날짜가 파싱되지 않는 것 같습니다. /일 (1480643052457)/

어떤 도움이나 제안이 크게 감사 :

나는 표시이 가치를! 업데이트

---- ----

마찬가지로 내가하고 결국 무엇에 빠른 업데이트 : 단순히 두 번째 문자열 열을 생성의 시점에서 (즉 I 형식으로 포맷 된 날짜 문자열을 반환 검색). 그런 다음 정렬 할 때 표시 열 대신 실제 DateTime 열을 사용하여 제대로 정렬되도록합니다. 이것은 내 요구에 잘 작동합니다. 원래 Angular 2 그리드로 작업을 시작했을 때 원래는 클라이언트 측의 기능이 그리드 (정렬 등의 측면에서)에서 벗어나기를 기대했지만 실제로는 일단 백엔드 API 소스에 올바르게 바인딩하면 필요하지 않습니다. 당신이 JS 날짜로 변환 할 필요가 제대로 날짜를 포맷하는 그리드 위해서는

kendo-grid-column field="createdOn" format='{0:MM/dd/yyyy HH:mm:ss} 
+0

열 템플릿을 사용해 보았습니까? 니가한다면 괜찮아. – mast3rd3mon

+0

아니, 나는 그것을 템플릿 화하지 않았다 .... 나는 그것을 할 수있다. 또한 데이터를 가져올 때 서버의 문자열로 간단히 변환하면 작동합니다. 방금 바인딩 된 데이터 배열에서 유효한 형식으로 datetime을 자동으로 구문 분석하거나 받아 들여야한다는 것을 알아 챘습니다. – BriDev

+0

내가 아는 것부터 theres datetime 필터, 그냥 템플릿을 사용하여 쉽게, 예제가 필요합니까? – mast3rd3mon

답변

1

당신은 다음과 같이 날짜를 포맷 할 수 있습니다. 일반적으로 서버에서 데이터를 검색하는 Ajax 호출의 콜백에서이를 수행합니다. 뭐 그런 :

field="SomeField" format='{0:d}
:

api.get('some server url').then(function(data) { 
 
    if (data.SomeDate) data.SomeDate = new Date(data.SomeDate); 
 
});

이것은 당신이로 날짜를 포맷 할 수

(이것은 의사 코드는, 직접 사용하지 않음)

또는 도움이

field="SomeField" format='{0:MM/dd/yyyy h:mm a} 

희망.

0

:

+0

속성을 사용하여 날짜 서식을 지정할 수 있습니까? 예 : format = '{0 : foo.DateFormat}' –

+0

흠, 확실하지 않습니다. 한번도 시도한 적이 없습니다. – dpdragnev

+0

이유는 열 정의 대신 구성 파일에 내 열 날짜 형식 정의를 갖고 싶다는 것입니다. 이 방법으로 한 번만 수정하면됩니다. –

1

템플릿 열의 날짜 파이프를 사용하여 동일한 문제를 해결했습니다. Null 값을 확인하십시오.

<kendo-grid-column title="Last Login" width="100"> 
    <ng-template kendoGridCellTemplate let-dataItem> 
     <div *ngIf="dataItem.lastLoginDate!=null">{{ formatDate(dataItem.lastLoginDate) | date:"shortDate" }}</div> 
    </ng-template> 
</kendo-grid-column> 

component.ts의 함수는 날짜 문자열의 사용 가능한 부분을 추출하여 JS 날짜로 변환하여 Date Pipe에서 사용할 수 있도록합니다.

formatDate(myStringDate) { 
    return new Date(parseInt(myStringDate.substr(6))); 
} 

은 내가 shortDate 형식을 사용하지만 여기 시간 형식을 포함하여 많은 형식 옵션을 찾을 수 있습니다 Angular 2 Date Pipe Formatters

0

즉, EF 코어의 형식의 문자열 작업. YYYY-MM-DDTHH : MM : SS,이 서비스에서 이것을 사용하여 그리드 소비를위한 API 데이터를 준비하는 호출 (이 경우 읽기)에 날짜 형식을 이어 붙일 수있었습니다. 작업이 일어나는 곳은 extractData에 있는데이 항목은 Angular 2 Date deserialization에서 가져 와서 내 용도로 개조 한 것입니다. 다행히 누군가가 슬픔을 덜어 주길 바랍니다.

확장 된 BehaviorSubject로 구성된 서비스 컨텍스트에서 추가해야합니다. 이것은 Telerik의 반응 형 편집 모델과 같습니다 :

private fetch(action: string = "", data?: ISomething[], guid?: string): Observable<ISomething[]> { 

    let options = new RequestOptions(); 
    options.body = this.serializeModels(data); 
    return this.http 
     .get('api/controllername/controllerget', options) 
     .map(response => response.json()).catch(this.handleError); 
} 


public read() { 

    this.reset(); 

    if (this.data.length) { 
     return super.next(this.data); 
    } 

    this.fetch() 
     .do(data => this.data = data) 

     .subscribe(data => { 
      this.extractData(data) 
      super.next(data); 
     }); 
} 

private extractData(data?: any) { 
    data.forEach((d) => { 
     d.datefieldname = new Date(d.datefieldname); 
    }); 
    return data; 
}