컨텍스트 메뉴로 사용하는 linkbuttons가 포함 된 mx : TitleWindow를 기반으로 구성 요소를 만들었습니다.텍스트가 데이터 기반이지만 프런트 엔드에서 가시성을 제어하는 링크 버튼을 만들려면 어떻게해야합니까?
TitleWindow 성분이 같은 링크 버튼을 포함
[Bindable]
private var _showEmailThis:Boolean = false;
[Bindable]
private var _showApproveThis:Boolean = false;
[Bindable]
private var _showReviewThis:Boolean = false;
<mx:LinkButton id="lnkEmailThis"
visible="{_showEmailThis}"
includeInLayout="{_showEmailThis}"
click="lnkEmailThis_click()"
label="Email this!" />
<mx:LinkButton id="lnkApproveThis"
visible="{_showApproveThis}"
includeInLayout="{_showApproveThis}"
click="lnkApproveThis_click()"
label="Approve this!" />
<mx:LinkButton id="lnkReviewThis"
visible="{_showReviewThis}"
includeInLayout="{_showReviewThis}"
click="lnkReviewThis_click()"
label="Review this!" />
컴포넌트는 많은 링크를 포함하고, 동일한 애플리케이션에서 다수의 모듈에 의해 다시 사용된다.
각 모듈 내에서이 구성 요소는 사용자가 DataGrid에서 행을 클릭 할 때 사용됩니다.
코드는 다음과 같습니다
private function dgRequests_click(event:MouseEvent):void
{
menu.showApproveThis = true;
menu.showReviewThis = true;
}
"성능"모듈에서 :
private function dgPerformance_click(event:MouseEvent):void
{
menu.showEmailThis = true;
menu.showReviewThis = true;
}
당신이 볼 수 있듯이, 개별 linkbuttons의 가시성 "요청"모듈에서
부울 속성을 설정하여 각 모듈 내에서 제어됩니다.
렌더러를 사용하기 위해이 구성 요소를 변경하는 경우 각 모듈의 코드에서 링크 버튼의 가시성을 제어 할 수 있습니다 (링크마다 기능이 다르지만 각 링크가 각 모듈에서 사용되는 것은 아닙니다) ? 참고 : 백엔드에서 어느 모듈이 어떤 링크를 사용하는지 알 수 없습니다. 이것은 각 모듈의 actionscript 파일 내 프런트 엔드에 설정됩니다.
예를 들어, XML은 다음과 같습니다 경우 :
<links>
<link>
<label>Email This</label>
<visible>_showEmailThis</visible>
</link>
<link>
<label>Approve This</label>
<visible>_showApproveThis</visible>
</link>
<link>
<label>Review This</label>
<visible>_showReviewThis</visible>
</link>
</links>
와 나는이 같은 모듈에 표시 할 이메일의 링크 설정 :
private function dgPerformance_click(event:MouseEvent):void
{
menu.showEmailThis = true;
}
를 어떻게 그것을 적용해야합니까? 해당 구성 요소를 사용하는 모듈에서 구성 요소의 항목 렌더러 내에서 링크 버튼의 가시성을 제어하는 방법이 있습니까?
답장을 보내 주셔서 감사합니다. 항목 렌더러가있는 목록뿐만 아니라 리피터도 사용했습니다. 그게 어려움이 아닙니다. 구성 요소에는 각 링크를 표시할지 여부를 제어하는 부울 속성이 있습니다. 특정 링크를 표시하려면 해당 링크에 해당하는 구성 요소의 속성이 모듈에서 true로 설정됩니다 (질문의 click 이벤트 참조). 이를 고려하여이 구성 요소를 데이터 기반으로 만들 수 있습니까? 어떻게 든 데이터 소스의 구성 요소에 부울 값을 설정해야합니다. – Zesty
[]를 사용하여 속성에 액세스 할 수 있습니다. yourComponent [ "_ showEmailThis"] = true; 다시 한 번 강조해 주시면 조금 더 명확하게 설명해주십시오. :) – Nek
도와 주신 것에 대해 다시 한번 감사드립니다. 내가 성취하려고하는 것을 명확히하기 위해 질문을 다시 말했습니다. 아마도, 백엔드가 모듈이 어떤 링크를 사용하는 그리드를 (성능상의 이유로) 알지 못하는 것일 수도 있습니다. 이것은 각 모듈의 actionscript 파일 내에서 설정됩니다. 따라서이 데이터는 XML에 나타날 수 없습니다. 구성 요소의 등록 정보는 각 모듈에 의해 설정됩니다. 그럼, 어떻게 구성 요소를 사용하는 모듈에서 구성 요소의 렌더러 내에서 링크 버튼의 가시성을 제어 할 수 있습니까? – Zesty