加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

实习日志(7):Flex的repeater组件

发布时间:2020-12-15 04:44:02 所属栏目:百科 来源:网络整理
导读:上午在昨天工作的基础上,修改了浏览板报的形式。即把由DataGrid展示的内容改为由panel面板展示,问题的难点在于如何令panel面板将数据库中的数据循环显示出来 ——使用repeater组件,可以达到循环显示数据的目的。 实现方法: mx:VBox mx:Repeater id="rp"

上午在昨天工作的基础上,修改了浏览板报的形式。即把由DataGrid展示的内容改为由panel面板展示,问题的难点在于如何令panel面板将数据库中的数据循环显示出来

——使用repeater组件,可以达到循环显示数据的目的。

实现方法:

 <mx:VBox>  
   <mx:Repeater id="rp" dataProvider="{lookContent.lastResult.Contents.Content}">
     <mx:Panel width="835" height="239" layout="absolute" title="板报标题:{rp.currentItem.title}" fontWeight="bold" fontSize="15" horizontalCenter="25" verticalCenter="10" borderColor="#050505" cornerRadius="20" alpha="1.0">
	<mx:Label x="0" y="10" text="板报内容:"/>
	<mx:Text x="10" y="42" text="{rp.currentItem.content}" width="795" height="97" alpha="1.0"/>
	<mx:Label x="144" y="163" text="发布人:{rp.currentItem.author}" width="124"/>
	<mx:Label x="435" y="163" text="失效时间:{rp.currentItem.finish}"/>
	</mx:Panel>
   </mx:Repeater>	
 </mx:VBox>

显示效果:

?


数据源写法:
?<mx:Repeater id="rp" dataProvider="{lookContent.lastResult.Contents.Content}">


绑定数据进行显示:
text="{rp.currentItem.content}"

?

XML格式
<Contents>
?<Content>
?? <id>1</id>
?? <title>w</title>
?? <content>w</content>
?? <start>10/16/2012</start>
?? <finish>10/17/2012</finish>
?? <author>admin</author>
?</Content>
<Contents>

?即将XML文件送给repeater,令其显示即可。

?

下午研究了在Datarid中增加LinkButton的方法,看了一个博客,终于搞出了通过LinkButton删除DataGrid中一行数据的方法,可惜博客地址当时没记、、、

具体实现:

<!--dataProvider接收HttpService(lookContent)返回的值-->
  <mx:DataGrid dataProvider="{lookContent.lastResult.Contents.Content}" 
	width="808" textAlign="center" borderStyle="inset" height="334" id="list" verticalCenter="-10" x="16.5">
	 <mx:columns>
		<mx:DataGridColumn headerText="板报标题" dataField="title" width="150"/>				  
		<mx:DataGridColumn headerText="失效时间" dataField="finish" width="150"/>
		<!--在该列中(修改板报)添加LinkButton,具体功能没做,明天搞吧-->      
		<mx:DataGridColumn headerText="修改板报"  dataField="id" width="60" >
			<mx:itemRenderer>
              <mx:Component>
                 <mx:LinkButton toolTip="修改板报" click="" icon="@Embed('image/update.gif')">
                 </mx:LinkButton>
              </mx:Component>
             </mx:itemRenderer>
		</mx:DataGridColumn>
		<!--在该列中(删除板报)添加LinkButton-->  
		<mx:DataGridColumn dataField="id" headerText="删除板报" width="60" >
			<mx:itemRenderer>
               <mx:Component>
                 <mx:LinkButton toolTip="删除板报"  click="deletebtn(event)" icon="@Embed('image/delete.gif')">
                    <mx:Script>
					  <![CDATA[
						  import mx.controls.Alert;										
						  private function deletebtn(event:MouseEvent):void{
						  outerDocument.deletebtn(event);										
						  }
					   ]]>
					</mx:Script> 					
                 </mx:LinkButton>
                </mx:Component>
              </mx:itemRenderer>
		</mx:DataGridColumn>
	</mx:columns>
  </mx:DataGrid>

deletebn()调用的外部方法deletebn():

public function deletebtn(event:MouseEvent):void{
    deleteContent.send();
 }

HTTPService——deleteContent部分

    <!--删除板报-->	
	<mx:HTTPService id="deleteContent" 
		url="http://localhost:8080/BlackBoardV1.5/ContentServlet"
		useProxy="false"
		method="post" result="deleteHandler(event)">
	   <mx:request>
	        <flag>{"delete"}</flag>
	        <id>{list.selectedItem.id}</id>
	   </mx:request>
	</mx:HTTPService>

?

运行效果:

删除板报:

?

一些概念性的东东:
selectedItem selectedIndex区别??
SelectedIndex是说被选中项的顺序
而SelectedItem是被选择项本身

?

错误处理:

每天都有错误,啊啊啊,不知道是运气不好还是水平太次,每天放在处理错误上的时间大把大把的。

1、DataGrid中定义的方法不能引用外部的HTTPService id。

解决方法:

在DateGrid中定义内部函数,通过内部函数获取外部的方法和属性。

实现过程中参考了该大神博客:

http://www.cnblogs.com/sange/archive/2012/03/22/2412281.html

2、java.lang.NoSuchMethodError: com.model.ContentDao.deleteContent(I)Z

让我郁闷的一个错误,查了半天,后来重启了Tomcat之后不再报错了、、

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读