Я хочу обновить значение во втором текстовом поле, когда я набираю что-то в первом текстовом поле - PullRequest
1 голос
/ 12 марта 2012

Как это будет реализовано с калиткой.Когда одна цифра, введенная во второе текстовое поле автоматически, в первом текстовом поле появляются такие же изменения: мой код:

txtLtpPriceCE.add(new AjaxFormSubmitBehavior("onkeyup") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            System.out.println(txtLtpPriceCE.getInput());
            showCalculatorModel.setTxtIntrinsicValueCE(txtLtpPriceCE.getInput());
            target.addComponent(txtIntrinsicValueCE);
         }

         @Override
         protected void onError(AjaxRequestTarget target) {
             throw new UnsupportedOperationException("Not supported yet.");
         }
});

Мой компонент:

final TextField txtLtpPriceCE = new TextField("txtLtpPriceCE",
             new PropertyModel(showCalculatorModel, "txtLtpPriceCE"));
item.add(txtLtpPriceCE);

final TextField txtIntrinsicValueCE = new TextField("txtIntrinsicValueCE",
             new PropertyModel(showCalculatorModel, "txtIntrinsicValueCE"));
item.add(txtIntrinsicValueCE);
txtIntrinsicValueCE.setOutputMarkupId(true);

Ответы [ 2 ]

4 голосов
/ 12 марта 2012

Если вы хотите, чтобы текстовые поля имели одно и то же значение все время, вы должны использовать одну модель для обоих. Тогда вам просто нужно обновить другое текстовое поле.

IModel<String> model = new Model<String>();
TextField<String> textfield1 = new TextField<String>("field1", model);
textfield1.setOutputMarkupId(true);
TextField<String> textfield2 = new TextField<String>("field2", model);
textfield2.add(new AjaxFormComponentUpdatingBehavior("onkeyup") {
  protected void onUpdate(AjaxRequestTarget target) {
      target.addComponent(textfield1);
  }
});
1 голос
/ 12 марта 2012

Добавьте поведение (onUpdate) в ваш первый компонент. Затем обновите модель второго компонента и в конце обновите второй компонент (добавьте его к цели запроса).

yourFirstComponent.add(new AjaxFormComponentUpdatingBehavior("onchange") {
      @Override
      protected void onUpdate(AjaxRequestTarget target) {
          yourSecondComponentModelValue = yourFirstComponentModelValue;
          target.addComponent(yourSecondComponent);
      }
});
...