如何创建与动态文本框的通信

how to create communication with dynamic text box

如何在没有id的动态文本框之间进行通信。

在正常情况下我们可以有一些事件名称 onchangeetc 。但在动态组件中。我们没有 link 的密钥 (id)。喜欢 onchange$id 然后做点什么 "".

那么在动态组件的情况下,如何从动态组件中获取值呢?请提供想法。

因为你的问题不是很精确(关于你如何动态创建这些组件 - java 或 zul 模板)这里有 2 个基本方法:

来自 java 代码:

创建新组件后,只需以编程方式添加事件侦听器,无需任何基于约定的方法名称。

//create dynamically anywhere
Textbox someInput = new Textbox();
someInput.setParent(someParent);
someInput.addEventListener(Events.ON_CHANGE, this::onChangeSomeInput);
//someInput.addEventListener(Events.ON_CHANGE, (InputEvent event) -> {...});
...

public void onChangeSomeInput(InputEvent event) {
   Textbox someInput = event.getTarget();
   someInput.getValue();
}

来自 zul 代码:

在这种情况下,event forwarding 是首选工具,它允许您将事件委托给具有 id

的父组件
<grid id="mygrid">
  <template name="model">
    <row>
      <textbox forward="onChange=mygrid.onChangeSomeInput(${each})"/>
    </row>
  </template>
</grid>

然后你可以像这样实现一个 composer 方法

public void onChangeSomeInput$mygrid(ForwardEvent forwardEvent) {
    InputEvent event = (InputEvent)forwardEvent.getOrigin();
    Object each = forwardEvent.getData();
}

(这段代码是我自己写的,所以请原谅 typos/errors,我很乐意提供 运行 示例,以防您具体说明问题)