2013-10-18 3 views
1

그리드에서 편집기를 사용하는 중에이 문제가 발생합니다. 그리고 그물에서 발견 한 거의 모든 그리드 예제에서 이것을 찾습니다. 텍스트 필드와 같은 편집기가있는 격자에서 <SAMPLE>과 같은 값을 입력 해보십시오. 초점이 흐려지면 빈 셀이 눈금에 표시됩니다. 그러나 편집을 위해 다시 선택하면 실제 입력 된 텍스트는 그대로 유지됩니다.ExtJS Grid : 셀 편집 : 값 입력시 빈 셀 <SAMPLE>

여기를보십시오 : http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.grid.plugin.CellEditing

나는 이것이 HTML 인코딩/디코딩과 관련이있다 알고 편집 이벤트에서 처리 할 수 ​​있습니다. 그러나 이것이 그리드에 의해 내부적으로 처리되어야한다고 생각합니다.

더 나은 해결책을 제안하십시오. 이러한 데이터를 그리드에 표시해야하므로 진짜 요청입니다.

답변

0

일반적으로 입력시 이러한 데이터를 이스케이프 처리하지 않고 출력 할 때 사용합니다. 그렇게하면 사용자의 입력 내용이 데이터 저장소에 그대로 유지됩니다. 그리드가이 문제를 처리하지 못하는 이유라고 생각합니다. 또한 실제로 그리드 열에 HTML을 사용하는 것은 불가능합니다. 개인적으로

나는 값 탈출 그리드 컬럼에 renderer을 제공

Ext.override(Ext.grid.column.Column, { 
    constructor: function(cfg) { 
     this.callOverridden(arguments); 

     if ('gridcolumn' === this.xtype && false === this.renderer) { 
      this.renderer = function(value) { 
       return Ext.util.Format.htmlEncode(value); 
      }; 
     } 
    } 
}); 

이 부가됩니다

renderer: function(value) { 
    return Ext.util.Format.htmlEncode(value); 
} 

을 당신은 또한 오버라이드 기본적으로 모든 그리드 열의 것을 할 수 그러한 렌더러는 이미 config에 렌더러가 제공되지 않은 모든 컬럼에 적용됩니다 (이 경우 렌더러는이를 처리해야합니다).

0

셀 값이 <Enter New Value> 인 그리드가있을 때마다 이것을 발견했습니다.

HTML 태그와 관련하여 혼란을 피하기 위해 그리드가 셀 값을 이스케이프 처리하지 않는다는 것이 밝혀졌습니다.

내가 생각하기에 하루 종일 잃어버린 모델/상점 문제가있었습니다. 여기에 대해 자세히 알아보기 :

http://www.sencha.com/forum/showthread.php?232292-Escaping-HTML-characters-in-editable-grids

을 해결 방법은 여기에 있습니다 :

http://non-stop-ext.blogspot.com/2013/02/gridpanel-with-special-characters-and.html