2013-03-26 4 views
1

dgrid/Grid를 사용하여 테이블 구조를 정의하고 있습니다. 표 셀에 여러 줄 텍스트을 표시하고 싶습니다. 셀 편집기를 TextArea로 만드는 방법을 알아 냈습니다. 그러나 렌더러에서 여러 줄 텍스트를 표시하는 방법을 알지 못합니다. 어떻게해야합니까?이 내가 가진 무엇 :dojo/dgrid 용 TextArea 셀 렌더러

editor({label: "First Name", field: "first", sortable: false, editor: getCellEditor, editOn: "dblclick", dismissOnEnter: false}) 

"getCellEditor"는 는 Dijit/양식/텍스트 영역를 반환하는 도우미 메서드입니다. 셀을 두 번 클릭하면 여러 줄의 텍스트 영역이 만들어집니다. 그러나 셀 편집 및 종료를 완료하면 셀 텍스트가 한 줄로 되돌아갑니다. 여기에 전체 그리드의 정의는 다음과 같습니다

function getCellEditor() { 
    return new TextArea(); 
}   

// Create a new constructor by mixing in the components 
var CustomGrid = declare([ Grid, Keyboard, Selection, ColumnSet, ColumnResizer, editor ]); 

var grid = new CustomGrid({ 
    columnSets: [ 
     [ 
      [ 
       editor({label: "First Name", field: "first", sortable: false, editor: getCellEditor, editOn: "dblclick", dismissOnEnter: false}) 
      ] 
     ], 
     [ 
      [ 
       editor({ label: "Last Name", field: "last", sortable: false, editor: getCellEditor, editOn: "dblclick", dismissOnEnter: false}), 
       editor({ label: "Age", field: "age", sortable: false, editor: getCellEditor, editOn: "dblclick", dismissOnEnter: false}) 
      ] 

     ] 
    ], 
    selectionMode: "single", // for Selection; only select a single row at a time 
    cellNavigation: true // for Keyboard; allow only row-level keyboard navigation 
}, "grid"); 

이 너무 누락/부적절한 정보를 용서하십시오, 내 첫 번째 자바 스크립트 질문입니다. 이 질문에 대한 답변을 드릴 때 다른 정보가 필요하면 알려주십시오.

답변

-2

renderCell 함수에서 텍스트 영역 위젯에 속성을 정의 할 수 있습니다.

function getCellEditor() { 
    return new TextArea({ 
     rows:"5" 
    }); 
} 

시도해보십시오.

+0

아니요. 도움이되지 않습니다. 네가 내 질문을 이해했다고 생각하지 않는다. 이미 TextArea를 편집기로 사용하고 있습니다 (행의 수가 중요하지 않음). 필요한 것은 셀 * 렌더러로서 TextArea입니다. 즉, 셀이 편집 모드가 아닌 경우 여러 줄에 걸쳐 표시하려면 셀 텍스트가 필요합니다. – eternaln00b

관련 문제