3.4.7. 行削除
この章では、WebSQL テーブルオブジェクトから、選択されている行の削除する手順について説明します。
ActionPage クラスにアクションメソッドを追加する
ActionPage クラスに画面から呼び出すアクションメソッドを追加します。
/* WebSQLテーブルオブジェクトからチェック行を削除します。 */
public void deleteRows() throws Exception {
  // チェックボックスの内容を受け入れ
  tableEmp.checkRequest(getRequest());
  // カーソル行を先頭にする
  tableEmp.first();
  // カーソルが有効範囲内か否か
  while (tableEmp.inBounds()) {
    // 削除予約されているか否か
    if (tableEmp.isDeletionDeserved()) {
      // カーソル行を削除
      tableEmp.deleteRow();
    }
    else {
      // カーソル行を次へ
      tableEmp.next();
    }
  }
  // 再表示
  show();
}

カーソル行を変更する(「 firstpreviousnextlastmoveTo 」メソッド)

WebSQL テーブルオブジェクトのカーソル行を変更します。
  • first:「最初へ」
  • previous:「前へ」
  • next:「次へ」
  • last:「最後へ」
  • moveTo:「指定 Index へ」

カーソル行が有効範囲か否かを取得する(「 inBounds 」メソッド)

WebSQL テーブルオブジェクトのカーソルが有効範囲にあるか否かを取得します。

カーソル行が削除予約されているか否かを取得する(「 isDeletionDeserved 」メソッド)

WebSQL テーブルオブジェクトのカーソル行が削除予約されているか否かを取得します。

カーソル行を削除する(「 deleteRow 」メソッド)

WebSQL テーブルオブジェクトのカーソル行を削除します。
HTML テンプレートに ActionPage 連携用の記述を追加する
アクションメソッドを呼び出す記述を追加します。
<!-- 行削除ボタンを配置 -->
<input type="button" value="選択行削除" onclick="ls.exec('deleteRow');" />

#foreach($emp in $tableEmp.Rows)
<tr>

  <td><input type="checkbox" $emp.deleteCheckBind('true') />
        <input type="hidden" $emp.deleteCheckBind('false') /></td>

</tr>
#end

「 $emp.deleteCheckBind

WebSQL テーブルオブジェクト現在行( =$emp )の削除予約カラムと入力フォームを関連付けます。
アクションメソッド「 checkRequest 」実行時に対象行の削除予約が行われます。
ページを表示する
ボタンをクリックして、チェックした行が削除されることを確認します。