0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerApps ポータルで一時保存機能を実現する

Posted at

はじめに

PowerApps ポータルで試したことを備忘録として残していきたいと思います。
今回はポータル画面で入力途中でデータを保存する一時保存機能の実現方法です。入力項目の多い画面で一時的に保存する方法で、一時保存ボタンを配置してクライアント側の入力チェックをバイパスしてデータを保存するための方法です。

前提

  • ポータルの基本フォームで指定しているモデル駆動のフォームに一時保存を判定する項目を含める(以下のコードでは test_app_draft が該当の項目になります)
  • JavaScriptのコードは基本フォームのカスタム JavaScriptに記述

コード

ポイントは draftSubmit 関数で、一時保存ボタンをクリックしたタイミングで該当項目を一時保存の状態にしてクライアント側の検証なしでサブミットしています。この関数をクリックで実行するボタンを画面上にJavaScriptで配置します。
あとは、今回は一時保存する項目(test_app_draft)はサブミットさせる必要があるのでフォームに含めて画面ロード時に非表示しています。JavaScriptのみで操作する項目に対してよく利用するテクニックです。

$(document).ready(function () {
    $("#test_app_draft).val("100000001"); //送信済状態のステータス
    $("#test_app_draft").hide();
    $("#test_app_draft_label").hide();
    draftSubmit = function() { 
        $("#test_app_draft").val("100000000"); //一時保存状態のステータス
        var buttonName = $("#UpdateButton").attr("name");
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(buttonName, "", true, "", "", false, true)); 
    };
    var button ="<input type='button' class='btn btn-primary button submit-btn' value='一時保存' onclick='draftSubmit();'/>";
    $(".form-action-container-left").append(button);
});

おわりに

WebForm_DoPostBackWithOptions関数はASP.NET WebFormで用意されたものなのでポータルはASP.NET WebFormは構築されているようですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?