기본 콘텐츠로 건너뛰기

Ext JS 4.2 트리 그리드 에디팅



var tree = Ext.create('Ext.tree.Panel', {
    id:"gridTree",
    autoHeight:true,
    renderTo: Ext.get('dataArea'),
    useArrows: false,
    rootVisible: false,
    store: store,
    multiSelect: true,
    plugins: [
        Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit: 1
        })
    ],
    rowLines:true,
    columns: 컬럼(column)

});
tree.on('validateedit', function(editor, e) {
    if(e.record.data[e.field]==e.value){
        e.cancel = true;
    }
});

tree.on('edit', function(e){
    console.log("필드 값(field value)"+e.context.field);
    console.log("이전 값(before value)"+e.context.originalValue);
    console.log("현재 값(now value)"+e.context.value);
});




필자는 그리드에서 수정 된것을 'validateedit'라는 좋은 옵션이 있는데 'edit' 에서 하고있었다.

Ext Js 에서는 수정을 한 후 적용 전에 벨리데이션을 하는 곳이 따로 존재하였다.

그래서 'edit'에서 벨리데이션을 했던 모든 내용을 'validateedit'로 옮겼다.

실 작동 URL[http://jsfiddle.net/Kwangheum/SgmyP/2/]












댓글

이 블로그의 인기 게시물

Intellij에서 Eclipse 프로젝트 import시 설정해줘야 할 것들

요즘 여유가 좀 생겨서 지금까지 Eclipse만 쓰다가 사람들이 하도 Intellij가 좋다하길래 얼마나 좋길래 하고 써보려고 하다가 프로젝트를 import 시키던중 좀 적어두면 좋을거같아서 적어보려고한다 !! 다음에 잊지 않기 위해... 1. Settings > Build, Execution, Deployment > Compiler > Java Compiler 버전 맞추기 2. 상단에 설정 추가 하는부분을 눌러 톰켓을 생성해준다. 꼭 넣어줘야할 부분은 VM options에  -Dfile.encoding=utf-8  한글 깨짐 방지다. (그리고 intellij 설치 된 곳에 bin폴더 안에 vmoptions 확장자를 갖은 녀석의 맨 마지막 줄에도 넣어준다!) 3. project structure > Project Settings > Project 그리고 java버전에 맞춰서 project language level도 맞춰줘야합니다! 4. project structure > Project Settings > Modules - Sources 여기도 project language level도 맞춰줘야합니다! 5. project structure > Project Settings > Modules - Dependencies 들어가서 + 단추를 누르고 Library..를 누르고 Tomcat 추가! 이러면 이클립스에서 갖고온 프로젝트가 잘 동작합니다!! 아 그리고 .settings, .classpath, .project 는 필요 없어지므로 삭제해도 무방합니다 ps. 사실... 이클립스 쓰면서 불편한건 하나도 없었어요... 그리고 아직은 단축키라던지 익숙하지 않아서 이클립스가 더 편하네요... 사실 이클립스 단축키를 인텔리제이와 동일하게 할 수 있지만.... 인텔리제이의 기본 설정만 써...

Ext JS 4.2 트리 노드 추가 및 스크롤 이동

Ext.require([ '*' ]); Ext.onReady( function (){      var addButton = Ext.create( 'Ext.Button' , {         text: '노드 추가(Add Node)' ,         scale: 'large' ,         listeners: {         el: {             click: function () {          var thisNode =  Ext.getCmp( 'xAxisTreeUse' ).getRootNode().appendChild({                      "text":"노드 이름 (Node name) "         });                 Ext.getCmp( " tree " ).selectPath(thisNode.getPath());             }         }     });      var   store = Ext.create( 'Ext.data.TreeStore' , {             id:  'store' ,     ...