ユーザ用ツール

サイト用ツール


alform:ウィジェットの追加_削除

ウィジェットの追加/削除

ウィジェットは、動的に追加・削除が可能です。
アクションごとに必要なパラメータが変わる場合は、この方法によって動的にウィジェットを増減させて対応します。

追加

    @form.add_widget( AlText.new( "fax", :label=>"ファックス" ) )

削除

    @form.delete_widget( "fax" )

既存フォームから必要なウィジェットのみのフォームを再構成

コンストラクタで作成したフォームから、そのアクションに必要な最小限のフォームを再構成する場合は、以下の方法が使えます。

  def initalize()
    @form = AlForm.new(
      AlText.new( "first_name", :label=>"名" ),
      AlText.new( "family_name", :label=>"姓" ),
      AlText.new( "address", :label=>"住所" ),
      AlText.new( "tel", :label=>"電話" ),
    )
  end
 
  def action_index()
    # 名,姓のみのフォームを再構成
    list = [ :first_name, :family_name ]
    @form = AlForm.new( list.map! { |k| @form.widgets[k] } )
    ...
alform/ウィジェットの追加_削除.txt · 最終更新: 2019/03/03 20:16 by hirohito