[Ctrl]+[Z]キーを使用すると、ウィジェット内のアクションをアンドゥできます。 続いて[Ctrl]+[Y]キーを押すと、取り消したアクションをリドゥできます。
アンドゥが可能なアクションの種類は、次のとおりです。
以下のアクションは、[Ctrl]+[Z]キーで取り消すことはできません。
アクションのアンドゥを有効にするかどうかをコード内で指定するには、options.allowUndoプロパティを使用します。
allowUndoプロパティをtrueに設定すると、操作のアンドゥおよびリドゥが可能になります。これにはstartTransaction()メソッド、undoTransaction() メソッド、およびendTransaction()メソッドを使用します。
次のサンプルコードは、options.allowUndoプロパティを設定し、アクションを指定します。
JavaScript |
コードのコピー
|
---|---|
spread.options.allowUndo = true; spread.commandManager().execute({cmd: "outlineRow", sheetName: activeSheet.name(), index: 3, count: 5}); |
次のサンプルコードは、startTransaction()、undoTransaction()、およびendTransaction()メソッドを使用して、セルの背景色を変更します。
JavaScript |
コードのコピー
|
---|---|
var command = { canUndo: true, execute: function (context, options, isUndo) { var Commands = GC.Spread.Sheets.Commands; { else { } |
アンドゥおよびリドゥ操作の数に制限を設定するには、undoManagerクラスのmaxSizeメソッドを使用して、アンドゥおよびリドゥのスタックサイズを制御します。これにより、メモリ消費を削減し、アプリケーションのパフォーマンスを向上させることができます。
JavaScript |
コードのコピー
|
---|---|
var spread = GC.Spread.Sheets.findControl(document.getElementById('ss')); let undoManager = spread.undoManager(); undoManager.maxSize(20); // 最大サイズを設定します。 let maxSize = undoManager.maxSize(); // 最大サイズを取得します。 |
アンドゥおよびリドゥスタックを取得するには、getUndoStackとgetRedoStack関数を使用できます。 これらの関数は、オブジェクトとしてコマンドとシート名の文字列値を含むスタックを返します。
JavaScript |
コードのコピー
|
---|---|
function getUndoStackFunction() { console.log(spread.undoManager().getUndoStack()); } function getRedoStackFunction() { console.log(spread.undoManager().getRedoStack()); } |
また、これらの関数を使用して、スプレッドシートにカスタムのメニューを作成したり、アンドゥおよびリドゥ操作のリストを表示したりすることもできます。
JavaScript |
コードのコピー
|
---|---|
<body> <input type="button" value="アンドゥスタックを取得します。" onclick="getUndoStackFunction()"> <input type="button" value="リドゥスタックを取得します。" onclick="getRedoStackFunction()"> </body> |
SpreadJS デザイナは、アンドゥおよびリドゥのスタックを操作のリストとしてドロップダウンリストに表示します。 これにより、任意の操作を選択してスプレッドシートをナビゲートできます。