2

zk 入力制約による検証を使用しています。保存ボタンをクリックするdoSaveと、引き続き呼び出されますが、そうすべきではありません。

トリガーのときにやりたいのですが、保存操作を停止する必要があります。

別の問題は、 zk が % in を許可することIntboxです。

これが私が試したことです。

検証.zul

<zk>
<window width="100%" height="100%"
    apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @init('com.test.Validation')">

    <toolbar id="listToolbarProcess" sclass="vista" height="20px"
        align="start">

        <toolbarbutton label="Save" onClick="@command('doSave')" ></toolbarbutton>

    </toolbar>

    <vlayout sclass="vertical-scroll" vflex="1">

        <intbox id="priority" value="@bind(vm.value)" maxlength="3"
            constraint="no empty" ></intbox>
            <datebox value="@bind(vm.date)"></datebox>
    </vlayout>

</window>

検証.java

 package com.test;

 import java.sql.Timestamp;

 import org.zkoss.bind.annotation.AfterCompose;
  import org.zkoss.bind.annotation.Command;
   import org.zkoss.bind.annotation.ContextParam;
   import org.zkoss.bind.annotation.ContextType;
   import org.zkoss.zk.ui.Component;

  public class Validation {

/**
 * @author Himanshu
 */
Integer value;

public Integer getValue() {
    return value;
}

public void setValue(Integer value) {
    this.value = value;
}
    Timestamp date;
public Timestamp getDate() {
return date;
    }

    public void setDate(Timestamp date) {
this.date = date;
     }

@AfterCompose
public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {

}

@Command
public void doSave() {

    System.out.println(" value =" + value);
    System.out.println(" Date Value =" + date);
}

}

ありがとうひまんしゅう

4

1 に答える 1

1

zk doc のこの部分を読んでください。
検証が失敗した場合にデータバインディング メソッドの呼び出しを回避する方法について説明します。

入力を受け入れる (受け入れない)場合は、 regex でテキストボックスを%使用します。 入力をマスクしたい場合は、こちらをご覧ください

于 2013-01-17T19:19:19.010 に答える