2013-03-26 70 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"); 

這是我的第一個JavaScript問題,所以請原諒任何缺少/不足的信息。如果您需要任何其他信息來回答此問題,請告訴我。

回答

-2

在renderCell函數中,您可以在textarea小部件中定義屬性。

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

試試這可能會幫助你。

+0

不,這沒有幫助。我不認爲你理解我的問題。我已經有一個TextArea作爲編輯器(它的行數不重要)。我需要的是一個TextArea作爲單元格*渲染器*,即當單元格處於非編輯模式時,我需要單元格文本顯示在多行上。 – eternaln00b 2013-03-27 04:33:53