Ajax Control Toolkit Animation问题解决

本文探讨了AjaxControlToolkit中动画效果硬编码带来的局限性,并提出了一种解决方案,即利用事件源ID和Condition动画实现动态参数的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还记得上会提到过一个关于 Ajax Control Toolkit Animation的问题么,就是因为Move等动画效果不支持动态参数或者说方法让我们很被动;
问题就在于"硬编码",如何解决这个问题呢?我们用下面的场景来说明:在Repeater内容模板里面放上一个CheckBox,绑定数据源;我们的目标是
在用户勾选一个CheckBox之后,在那条记录上飞出一个商品图片飞向购物车。
如果我们能使用<Move Horizontal="GetH()" Vertical="GetV()" />方式那么问题就不存在了,现在我们只能<Move Horizontal="150" Vertical="-50" />!
None.gif 怎么办?我们的关键问题是确定点击的是哪一个CheckBox!我们的解决方法基于这样两个事实:
None.gif1.虽然我们不能使用动态参数,但是我们可以获得事件源,使用这样的方法:
ExpandedBlockStart.gifContractedBlock.gif
< script > dot.gif
InBlock.gif
functiona()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifalert(event.srcElement.value);
InBlock.gifalert(event.srcElement.id);
ExpandedBlockEnd.gif}

None.gif
</ script >
None.gif
< b > 如果这个方法可以的话,我们就可以解决动画效果的问题 </ b >< br />
None.gif15:212007/6/30
</ br >
None.gif
< input id =myid type =button onclick =a(); value =test ></ input >
None.gif
None.gif2.现在可以取到事件源的ID了,那么怎么确定是哪一个CheckBox呢?因为绑定数据源之后页面上会生成很多CheckBox!
None.gif我们仿佛又无路可走,在查看页面源代码的时候我们找到了”救星“,请看:
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl01_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl02_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl03_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl04_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl05_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl06_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl07_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl08_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl09_ctl00_DataItemCheckBox"
None.gifid="ctl00_MainContentPlaceHolder_ResourceDataList1_DynamicRepeater1_ctl10_ctl00_DataItemCheckBox"
None.gif
None.gif这是Repeater被解析之后显示的内容,每一个CheckBox都有一个ID,我们还发现了一个ct100ct101ct102ct103dot.gifct110规律,
None.gif通过分析CheckBox的ID我们就可以确定是第几个CheckBox了!!
None.gif
None.gif之后呢?动画的问题还是没有解决!!!不,已经解决了,还记得Condition动画效果么?我们只需要设置一个布尔型数组就可以了;
None.gif
< Condition ConditionScript ="flag[0]" >
None.gif
< Move Horizontal ="150" Vertical ="-50" />
None.gif
</ Condition >
None.gif
< Condition ConditionScript ="flag[1]" >
None.gif
< Move Horizontal ="160" Vertical ="-60" />
None.gif
</ Condition >
None.gif
None.gif
< Condition ConditionScript ="flag[2]" >
None.gif
< Move Horizontal ="170" Vertical ="-70" />
None.gif
</ Condition >
None.gif
< Condition ConditionScript ="flag[3]" >
None.gif
< Move Horizontal ="180" Vertical ="-80" />
None.gif
</ Condition >
None.gifdot.gifdot.gifdot.gifdot.gifdot.gifdot.gif.
None.gif问题解决!
坚强2002和你一起回头再说...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值