dojo/dgrid的TextArea单元格渲染器

问题描述:

我正在使用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问题,所以请原谅任何缺少/不足的信息。如果您需要任何其他信息来回答此问题,请告诉我。

在renderCell函数中,您可以在textarea小部件中定义属性。

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

试试这可能会帮助你。

+0

不,这没有帮助。我不认为你理解我的问题。我已经有一个TextArea作为编辑器(它的行数不重要)。我需要的是一个TextArea作为单元格*渲染器*,即当单元格处于非编辑模式时,我需要单元格文本显示在多行上。 – eternaln00b 2013-03-27 04:33:53