2014-01-06 1 views
0

사용자 지정 구성 요소를 한 페이지에서 200 번 반복하여 각 구성 요소의 참조를 저장해야하는 응용 프로그램이 있습니다. 나는 그것을 for 루프를 사용하여 추가하려고 시도했다. 그러나 그렇게하는 것은 나에게 스크립트 오류를주고있다. extjs에서 사용자 지정 구성 요소를 반복하는 다른 방법이 있습니까? 여기에 제가 사용하고있는 코드가 있습니다.extjs의 사용자 지정 요소 반복하기

Ext.application({ 
requires: ['Ext.container.Viewport'], 
name: 'Excel', 

launch: function() { 
    Ext.define('ExcelCell',{ 
      extend: 'Ext.panel.Panel', 
      itemcls: 'excelCell', 
      height: 20, 
      width: 64 
     }); 

    var port = Ext.create('Ext.container.Viewport', { 
     layout: 'absolute' 
    }); 


    var totalRowsToDraw = port.height/20; 
    var totalColumnsToDraw = port.width/64; 

    var cellDictionary = new Object(); 
    var cell; 

    for(var r=0; r < totalRowsToDraw ;r++){ 
     for(var c=0; c < totalColumnsToDraw ;c++){ 
      cell = Ext.create('ExcelCell'); 
      cell.x = c*64; 
      cell.y = r*20; 
      port.add(cell); 
      cellDictionary[r+','+c] = cell; 
     } 
    } 
} 
}); 

또한 내 CSS 코드는 귀하의 코드가 완벽하게 작동

.excelCell{ 
padding-bottom: 0; 
padding-left: 0; 
padding-right: 0; 
padding-top: 0; 
border: 1; 
border-style: solid; 
border-color: #B7BABC; 
background-color: #000000; 
} 
+0

잘 작동합니다 : http://jsfiddle.net/XGdu9/ (하지만 저는'panel's 대신'XTemplate' 또는'container's 또는'box's를 사용합니다) –

+0

제가 사용하고있을 때 Hbox 또는 Vbox 패널에만 테두리가 표시되지 않습니다. 셀 주위에 테두리가 나타납니다. 나는 ExtJs의 초보자이기 때문에 깊이있는 지식이 없기 때문에 왜 그런 일이 일어나고 있는지 알 수 없습니다. – Ashok

답변

0

입니다. 내 마음에 오는 유일한 방법은 아마도 다른 방법에서 cellDictionary을 사용하고 싶다는 것입니다. 그런 경우, 당신은 대신,이 전 세계적으로 accesible 확인하려면

:

var cellDictionary = {}; 

당신이해야 할 것 :

Excel.cellDictionary = {}; 

을 한 후, 액세스하려면 ' d는 Excel.cellDictionary["2,2"]과 같은 일을합니다 (아마도 이것은 분명합니다)

희망이 있습니다. 건배

+0

괜찮습니까? 왜냐하면 내가 Firefox에서 실행 중일 때 스크립트가 응답하지 않는 오류가 발생하기 때문입니다. 크롬과 IE에서도 열리지 않습니다. – Ashok

+0

흠. ExtJs 4.1.1을 사용하는 크롬에서 나에게 잘 작동합니다. http://jsfiddle.net/XGdu9/ –

+0

http://jsfiddle.net/XGdu9/4/ 이제 오류가 발생합니다. – Ashok

관련 문제