2014-06-14 2 views
0

ZK 그리드에서 곱셈을 수행 내 그리드의 모습입니다 ZK 그리드의 곱셈을 수행 할 수있는 방법

속도 수량 금액

| 2 ----- 3 --- 6 |
| 4 ------ 4 ---- 16 |

+0

나는 zul 코드를 보여 주므로 도와 드릴 수 있습니다. MVC, MVVM 또는 그리드 (렌더러, 템플릿 등)를 구현하는 방법에 따라 몇 가지 솔루션이 있습니다. – chillworld

+0

친절하게도 내가 어떤 문제가 있으면 알려주겠습니까? –

답변

1

each은 var 이름의 약자로 변수의 이름을 어떻게 지정했는지 나타냅니다. 기본적으로 이것은 each입니다. MVVM 경우 :

당신이 당신의 VM에 추가 할 수

public long countNumbers (int first, int second) { 
    return (long)first + second; 
} 

ZUL에 :

<label value="@load(vm.countNumbers(each.number1, each.numer2))"/> 

MVVM 또는 MVC에서 :

의, 당신은 regulary에 쓸 수 필요한 경우 자신의 taglib에이 메소드를 사용한다. (MVC에서도 사용 가능)
WEB-INF/tld 폴더에 tld 파일을 만들어야한다. :

<taglib> 
    <!-- count numbers to each other --> 
    <function> 
     <name>countUp</name> 
     <function-class>your.path.Classname</function-class> 
     <function-signature> 
      java.lang.Long countNumbers(java.lang.Integer, java.lang.Integer) 
     </function-signature> 
     <description>counts the 2 numbers to each other.</description> 
    </function> 
</taglib> 

그럼 당신은 새로운 자바 폴더의 유틸리티 클래스 (이 방법은 정적 일 필요 조심) 작성 :

public static Long countNumbers (Integer first, Integer second) { 
    return (Long)first + second; 
} 

그리고 ZUL에서을 :

<?taglib uri="/WEB-INF/tld/taglibname.tld" prefix="ct"?> 

<label value="@load(ct:countUp(each.number1,each.number2))"/> 

당신은을 사용하는 경우 렌더러를 사용하면 Java에서 행의 모든 ​​객체를 직접 설정하므로 2 개의 값을 세면 문제가 없어야합니다. 원래 객체를 이미 가지고 있기 때문입니다.

편집 : 반환 유형을 long으로 변경하십시오 (큰 정수는 오버플로를 초래할 수 있음)

관련 문제