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

上午在昨天工作的基础上,修改了浏览板报的形式。即把由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之后不再报错了、、尴尬

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值