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,然后按 |Delete| - 这将触发员工 3 的删除。

我想我可以处理我的代码部分要做什么selected:,但我不知道如何处理回调?有没有办法动态选择调用什么?

4

1 回答 1

4

由于您无论如何都在使用广播组,因此您只能从员工列表中选择一个条目。现在,如果您使用一个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 回答