일부 규칙에서 DataGrid의 전체 행을 취소하려고합니다. 가능한가?DataGrid의 타격
2
A
답변
2
커스텀 아이템 렌더러를 사용하는 것,이 일을하는 가장 강력한 방법의 OnUpdateDisplay 기능을 재정의하는 경우, 당신이 그래픽 객체를 사용 그릴 부울 매개 변수를 기반으로 데이터 격자 항목의 레이블 사이의 가로 선.
원한다면 라벨에 이와 같은 것을 적어도되지만 Datagrid 아이템 구성 요소로 작동하도록 내부 구조를 파악해야합니다.
레이블에 대한 예를 붙여 넣으려면 알려주십시오.
EDIT (붙여 넣기 예)
는, 새로운 플렉스 프로젝트를 만들고 클래스의 label.The 이름을 확장하는 새 클래스를 추가 지금과 같은 기본 패키지에이 .Put StrikeThroughLabel (즉,
일단package
{
import mx.controls.Label;
public class StrikeThroughLabel extends Label
{
private var isStriked:Boolean = false;
public function StrikeThroughLabel()
{
super();
}
public function set striked(aIsStriked:Boolean):void{
isStriked = aIsStriked;
this.updateDisplayList(this.width, this.height);
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if(isStriked){
graphics.lineStyle(1,0x0000FF,1,false,"normal",null,null,3.0);
graphics.lineTo(unscaledWidth,unscaledHeight);
}else{
graphics.clear();
}
}
}
}
이 완료 이잖아 빈 패키지 필드)를두고, 당신의 main.mxml에 와서 MXML 위해 다음 코드를 사용합니다
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="windowedapplication1_creationCompleteHandler(event)"
xmlns:local="*">
<local:StrikeThroughLabel id="strikeThrough" text="Hello" x="129" y="128"/>
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
private var isLabelStriked:Boolean = false;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
//this.strikeThrough.striked = true;
}
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
isLabelStriked = !isLabelStriked;
this.strikeThrough.striked = isLabelStriked;
}
]]>
</mx:Script>
<mx:Button click="button1_clickHandler(event)" id="myButton" label="Toggle"/>
</mx:WindowedApplication>
을
위의 그림은 버튼과 라벨을 보여줍니다. 버튼을 클릭하면 라벨의 취소 선이 토글됩니다. 현재 파업 - 대진은 대각선이지만 라인을 그리는 로그인으로 약간의 비틀기 만하면 수평 파업이 발생합니다.
1
이 도움말이나이 도움말 만 본 것이 아니라면 확실하지 않습니다.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var stepsObjs:ArrayCollection = new ArrayCollection();
private function init():void
{
stepsObjs.addItem(new CObj(100,100,true));
stepsObjs.addItem(new CObj(700,800,false));
}
]]>
</mx:Script>
<mx:DataGrid id="dg" dataProvider="{stepsObjs}" click="{dg.selectedItem.strike = !dg.selectedItem.strike}" editable="false">
<mx:columns>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="100%"
height="100%"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
override public function set data(value:Object) : void {
super.data = value;
}
]]>
</mx:Script>
<mx:TextArea text="{data.x}" borderStyle="none" editable="false"/>
<mx:HRule strokeColor="red" width="100%" visible="{data.strike}" y="{this.height/2}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="100%"
height="100%"
horizontalScrollPolicy="off"
verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
override public function set data(value:Object) : void {
super.data = value;
}
]]>
</mx:Script>
<mx:TextArea text="{data.y}" borderStyle="none" editable="false"/>
<mx:HRule strokeColor="red" width="100%" visible="{data.strike}" y="{this.height/2}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
CObj 클래스
package
{
[Bindable]
public class CObj
{
public function CObj(x:Number , y:Number , str:Boolean)
{
this.x = x;
this.y = y;
this.strike = str;
}
public var x:Number;
public var y:Number;
public var strike:Boolean;
}
}
관련 문제
- 1. 갑작스런 타격 중지 onCreate
- 2. 장고 ORM 및 타격 DB
- 3. 브라운 운동 독립 시간 타격
- 4. DataGrid의 캘린더
- 5. Datagrid의 툴팁
- 6. Datagrid의 "전체"
- 7. 깊은 divs 중첩 타격 성능이 있습니까?
- 8. java.security.PrivilegedActionException 동안 HTTPS를 통해 웹 서비스를 타격
- 9. 볼 타격 소리 감지 라이브러리가 있습니까
- 10. DataGrid의 콤보 상자
- 11. Flex DataGrid의 키보드 탐색
- 12. DataGrid의 ComboBox 바인딩 RowDetailsTemplate
- 13. DataGrid의 출력 이미지
- 14. Dojo DataGrid의 기본값 설정
- 15. C# DataGrid의 TextWrapping
- 16. DataGrid의 하이퍼 링크 : InvalidOperationException
- 17. WPF DataGrid의 "Invalid"datetime
- 18. DataGrid의 열 너비를 *
- 19. DataGrid의 내용 서식 지정
- 20. DataGrid의 X 행만 표시
- 21. DataGrid의 행 변경 방지
- 22. DataGrid의 itemrendrer 체크 박스
- 23. WPF DataGrid의 업데이트
- 24. DataGrid의 데이터를 데이터베이스에 저장하십시오.
- 25. DataGrid의 셀 클릭에 관해
- 26. Datagrid의 서식 값
- 27. Datagrid의 글자 크기
- 28. DataGrid의 행에 대한 도움말
- 29. 어쨌든 DataGrid의 스타일을 변경하려면?
- 30. 구글 맵스 API에 대한 타격 속도 제한,하지만 이유는 모르겠다
물론입니다. 고맙습니다. 미리 감사드립니다. –
안녕하세요. 코드로 답변을 업데이트했습니다. 작동하는지 알고 계십니까? – Neeraj
이번 주에 다른 프로젝트를 마무리하겠습니다. 참으로 작동하여 답변을 수락하는 것 같습니다. 어떤 문제라도 여기에 게시해야합니다. 감사. –