2

だから私は次のようなことをしたい:

html unorderedList: [
group := html radioGroup.
self employeeNames do: [ :eachEmp | 
                    html listItem: [
                                group radioButton
                                   selected: <set tmpVar = empKey>
                                   callback: [ self <dependent on button pushed> ].            
                         html text: eachEmp ] ] ]   ]

私がやりたいことは、従業員のリストを生成し、各行にラジオ ボタンを付けることです。次に、選択されたラジオ ボタンと押されたボタンに応じて、何らかのアクションを実行します。

だから私が欲しいものの視覚的表現は次のようなものです:


|タイムカードの投稿| --- |タイムシート履歴| --- |給与明細を印刷| --- |削除|

  • 従業員 1 ..... データ .... データ .... データ
  • 従業員 2 ..... データ .... データ .... データ
  • 従業員 3 ..... データ .... データ .... データ
  • 従業員 4 ..... データ .... データ .... データ
  • 従業員 5 ..... データ .... データ .... データ

たとえば、従業員 3 を選択して |削除| を押すことができます。- これにより、従業員 3 の削除がトリガーされます。

コードの一部に対して何をすべきかを処理できると思いますがselected:、コールバックを処理する方法がわかりませんか? 何を呼び出すかを動的に選択する方法はありますか?

4

1 に答える 1

4

とにかくラジオ グループを使用しているため、従業員のリストから 1 つのエントリしか選択できません。ここで、form要素を使用してコントロールをラップすると、アクション アンカーは単純にフォームの送信をトリガーできます。

formName := 'employee-form'.

html form
    name: formName;
    with: [
        html unorderedList: [
            group := html radioGroup.
            self employeeNames do: [ :eachEmp | 
            html listItem: [
                group radioButton
                    selected: nil "<set tmpVar = empKey>";
                    callback: [ :value | self "<dependent on button pushed>" ];  
                    with: eachEmp ] ] ] ].

html anchor
    submitFormNamed: formName;
    callback: [ :value | self handleDelete ]
    with: 'delete'

アンカーのコールバックは、フォーム要素のすべてのコールバックの後に評価されます。

補足:を使用with:してアンカーとラジオ ボタンのテキストを設定していることに注意してください。ほとんどの場合with:、 への最後のメッセージとして使用する必要がありますhtml

于 2013-06-27T06:19:45.920 に答える