【问题标题】:TextArea cell renderer for dojo/dgrid用于 dojo/dgrid 的 TextArea 单元格渲染器
【发布时间】:2013-03-26 22:12:58
【问题描述】:

我正在使用 dgrid/Grid 来定义表结构。 我希望表格单元格显示多行文本。我想出了如何让单元格编辑器成为 TextArea。但是,我不清楚如何让渲染器也显示多行文本。我该如何做到这一点?这就是我所拥有的:

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

“getCellEditor”是一个返回 dijit/form/TextArea 的辅助方法。双击单元格会产生一个多行文本区域。但是,当我完成编辑并离开单元格时,单元格文本将恢复为单行显示。这是整个网格定义:

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 问题,因此请原谅任何缺失/不充分的信息。如果您需要任何其他信息来回答此问题,请告诉我。

【问题讨论】:

    标签: javascript dojo dgrid


    【解决方案1】:

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

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

    试试这个可能对你有帮助。

    【讨论】:

    • 没有。这没有帮助。我认为你没有理解我的问题。我已经有一个 TextArea 作为编辑器(它的行数无关紧要)。我需要一个 TextArea 作为单元格 renderer ,即当单元格 not 处于编辑模式时,我需要单元格文本跨多行显示。
    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2015-08-08
    相关资源
    最近更新 更多