Skip to content

Latest commit

 

History

History
117 lines (83 loc) · 4.01 KB

File metadata and controls

117 lines (83 loc) · 4.01 KB

スクリプト

Codeer.LowCode.Blazor のスクリプトは、C# とほぼ同じ構文で書ける軽量スクリプトです。 デザイナで Field やイベントを選んで、画面の挙動をカスタマイズします。


どこに書くか

書く場所
Field のイベント OnClick(Button)、OnDataChanged(TextField 等)、OnSelectedIndexChanged(List)
レイアウトのイベント OnBeforeInitializationOnAfterInitialization
Module の Scripts 自由に書けるトップレベル領域。関数・モジュール変数を定義する
Field のスクリプト式 IsVisibleIsEnabled などの式に短い式を書く

スクリプトはデザイナのプロパティパネルから入って、専用エディタで編集します。


イベントハンドラの命名規則

イベントから作られる関数の名前は {FieldName}_{EventName} が標準です。 この名前にしておくと、エディタで Field 名の補完が効きます。

// SaveButton (Button) の OnClick
void SaveButton_OnClick()
{
    Toaster.Success("保存しました");
}

// EmailField (Text) の OnDataChanged
void EmailField_OnDataChanged()
{
    if (!EmailField.Value.Contains("@"))
    {
        EmailField.SetError("@ が含まれていません");
    }
}

同期と非同期

戻り値が Task / Task<T> のメソッドは await を付けて呼び出します

async Task SaveButton_OnClick()
{
    if (!await ValidateInput()) return;
    if (await Submit())
    {
        Toaster.Success("保存しました");
    }
}

メソッド名に Async が付いていなくても、戻り値が Task なら対象です。 ハンドラ自体も非同期処理を含むなら async Task にします。

内部的には Submit / ShowDialog / MessageBox.Show / ValidateInput など多くの API が非同期です。


モジュールメンバーの参照

同じモジュール内では、Field・Layout・モジュール変数・モジュール関数は名前のまま参照できます。

// 同じモジュール内
var name = NameField.Value;        // Field 参照
ListLayout.SetAdditionalCondition(s); // Layout 参照
var sum = CalcSum(10, 20);         // モジュール関数

// this も使える(明示したい場面で)
this.NameField.Value = "山田";

別モジュールは new で取得します。

var customer = new Customer();
var info = customer.GetInfo();

学ぶ順番

  1. 使い方を覚えるチュートリアル: スクリプトの基本(30分)
  2. モジュール連携チュートリアル: モジュール連携(40分)
  3. 構文・型・名前解決の詳細スクリプト構文リファレンス
  4. 使えるサービスの一覧組み込みサービスとテンプレート由来サービス
  5. 他モジュールの検索ModuleSearcher / BatchSearcher
  6. 独自の型・サービスを足すスクリプトの拡張
  7. デバッグスクリプトデバッガ

Field 個別の API

各 Field 固有のプロパティ・メソッドはそれぞれの Field ドキュメントを参照してください。


関連項目