2014-12-08 4 views
0

여기에서는 여러 행의 표를 선택하고 텍스트 상자에서 선택한 행의 값을 표시해야합니다. 아래 그림과 같이 시도했지만 성공하지 못했습니다.행을 선택하고 텍스트 상자에 표시

여기서는 그리드의 다른 행을 선택하고 텍스트 상자에서 선택된 행의 값을 표시해야합니다. 아래 그림과 같이 시도했지만 성공하지 못했습니다.

<script> 
    require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/dom', 'dojo/domReady!'], 
     function(lang, DataGrid, ItemFileWriteStore, dom) 
     { 

      /*set up data store*/ 
     var data = 
     { 
       identifier: "id", 
       items: [] 
     }; 

     var data_list = [ 
         { col1: "normal", col2: false, col3: 'But are not followed by two hexadecimal', col4: 29.91}, 
         { col1: "important", col2: false, col3: 'Because a % sign always indicates', col4: 9.33}, 
         { col1: "important", col2: false, col3: 'Signs can be selectively', col4: 19.34} 
        ]; 
      var rows = 60; 

      for(var i = 0, l = data_list.length; i < rows; i++) 
      { 
      data.items.push(lang.mixin({ id: i+1 }, data_list[i%l])); 
      } 

     var store = new ItemFileWriteStore({data: data}); 

    /*set up layout*/ 
    var layout = [[ 
     {'name': 'Column 1', 'field': 'id', 'width': '100px'}, 
     {'name': 'Column 2', 'field': 'col2', 'width': '100px'}, 
     {'name': 'Column 3', 'field': 'col3', 'width': '200px'}, 
     {'name': 'Column 4', 'field': 'col4', 'width': '150px'} 
    ]]; 

    /*create a new grid*/ 
    var grid = new DataGrid({ 
     id: 'grid', 
     store: store, 
     structure: layout, 
     selectionMode: 'extended', 
     rowSelector: '20px'}); 

     /*append the new grid to the div*/ 
     grid.placeAt("gridDiv"); 
     grid.startup(); 

     dojo.connect(grid, "onRowClick", function(e) { 
     var dataItem = grid.selection.getSelected(); 
     onsole.dir(dataItem); 
     //document.getElememtById("myText").value = dataItem 
    });   
}); 

</script> 

</head> 
<body class="claro"> 
    <div id="gridDiv"></div> 
    <input name="textbox1" id="myText" type="text" /> 
</body 

답변

0

통해 getSelected() 당신이 선택한 행을 나타내는 ItemFileWriteStore 객체의 배열을 제공 할 것입니다. 이벤트 처리기에서 첫 번째로 선택한 행의 필드 값을 가져 오려면 -

var selectedRowsArray = grid.selection.getSelected(); 
var firstSelectedRow_field_value = selectedRowsArray[0].field_name[0]; 

textBox.set("value", firstSelectedRow_field_value); 
관련 문제