1

テーブル構造を定義するために dgrid/Grid を使用しています。表のセルに複数行のテキストを表示したい。セル エディターを TextArea にする方法を見つけました。ただし、レンダラーに複数行のテキストも表示させる方法は明確ではありません。どうすればこれを達成できますか? これは私が持っているものです:

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

「getCellEditor」は、 dijit/form/TextAreaを返すヘルパー メソッドです。セルをダブルクリックすると、複数行のテキスト エリアが生成されます。しかし、編集を終了してセルから離れると、セル テキストは 1 行表示に戻ります。グリッド定義全体は次のとおりです。

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 に関する質問です。不足している情報や不適切な情報がある場合はご容赦ください。この質問に回答するために他に情報が必要な場合は、お知らせください。

4

1 に答える 1

-2

renderCell 関数では、textarea ウィジェットで属性を定義できます。

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

これを試してみてください。

于 2013-03-27T03:39:23.430 に答える