루프

2011-05-16 8 views
3

나는 다음과 같은 코드에 문제가 있어요에 컨텍스트를 제출루프

중 버튼을
<input type="submit" name="button" id="button" value="remove 12339020"> 
<input type="submit" name="button" id="button" value="remove 2504658"> 

클릭은 이제까지을 트리거 :

<t:form t:id="locationsForm" t:zone="myZone"> 
    <t:loop t:source="locations" t:value="location" t:encoder="locationEncoder"> 
     <t:textfield t:value="location.name" /> 
     <t:submit t:event="RemoveLocation" t:value="remove ${location.hashCode()}" t:context="${location.hashCode()}" /> 
    </t:loop> 
    <t:submit t:value="save" /> 
</t:form> 

나는 다음과 같은 버튼으로 끝날 말을 문맥이 onRemoveLocation이고 문맥이 2504658 인 이벤트입니다.

두 번째 제출 구성 요소가 첫 번째 구성 요소에 의해 등록 된 이벤트 처리기를 재정의 했으므로 둘 다 두 번째 구성 요소 이벤트 처리기를 호출하게됩니다.

나는 clientId을 독특한 것으로 설정하려고 시도했지만 도움이되지 않았습니다.

사용자가 하나의 요소 이름을 업데이트하고 동일한 작업에서 두 ​​번째 요소를 제거 할 수 있으므로 동일한 양식을 제출하려면 제거 버튼이 필요합니다.

감사합니다. docs에서

<t:submit t:event="RemoveLocation" t:value="remove ${location.hashCode()}" 
    t:context="${location.hashCode()}" t:defer="false" /> 

:

(태피스트리 5.1.0.5)

답변

6

컨텍스트와 루프 내부에 Submit를 사용하여, 당신은 또한이 문제를 방지하기 위해 defer="false"을 설정해야합니다

지연 : true (기본값)이면 구성 요소가 보낸 모든 알림은 th까지 지연됩니다. 최종 양식 제출 (이것은 일반적으로 바람직합니다). 일반적으로 제출 구성 요소가 루프 내부에서 렌더링되는 경우를 제외하고는 기본값으로 남겨 둘 수 있습니다.이 경우 지연은 false로 바인딩되어야합니다 (그렇지 않으면 이벤트 컨텍스트가 항상 루프의 최종 값이됩니다).

+0

감사합니다. – pstanton