Atlas学习手记(18):使用DragPanel实现拖放面板

前面曾经使用DragOverlayExtender来实现过拖放功能,DragPanel也可以使我们很容易的为ASP.NET面板加上拖放功能。DragPanel直接封装了Atlas中的客户端控件Sys.UI.FloatingBehavior,它为如何向已有的Behavior添加一个Extender提供了很好的示例。

 

主要内容

1DragPanel Extender介绍

2.完整示例

 

一.DragPanel Extender介绍

前面曾经使用DragOverlayExtender来实现过拖放功能,DragPanel也可以使我们很容易的为ASP.NET面板加上拖放功能。DragPanel直接封装了Atlas中的客户端控件Sys.UI.FloatingBehavior,它为如何向已有的Behavior添加一个Extender提供了很好的示例。示例代码:

<atlasToolkit:DragPanelExtender ID="DragPanelExtender1" runat="server">            

    
<atlasToolkit:DragPanelProperties 

        
TargetControlID="PanelContenter" 

        DragHandleID
="PanelHeader" />            

</atlasToolkit:DragPanelExtender>

它的属性非常简单:

属性

描述

TargetControlID

要实现拖放功能的目标Panel ID

DragHandleID

拖动处理Panel ID,当用户单击并拖动它的时候,目标控件将随着一起移动。

二.完整示例

DragPanel的使用非常简单,下面看一个简单的示例。新建WebSite后,在ASPX页面中加入:

<%@ Register Assembly="AtlasControlToolkit" 

            Namespace
="AtlasControlToolkit" 

            TagPrefix
="atlasToolkit" 
%>

添加两个Panel,分别用来作为目标拖动PanelDragHandle Panel

<div style="height: 300px; width: 150px; float: left; padding: 5px;">

<asp:Panel ID="PanelContenter" runat="server" Width="24%" Height="251px">

    
<asp:Panel ID="PanelHeader" style="cursor: move" BorderStyle="Solid" BorderWidth="1px" BorderColor="black"  runat="server" Width="134px" Height="20px">

        
<div style="cursor: move"><strong>Drag Me</strong></div>

    
</asp:Panel>

    
<asp:Panel BorderStyle="Solid" Width="133" BackColor="#AFC5FE" ForeColor="Black" Font-Size="small" BorderWidth="1px" BorderColor="black" ID="Panel9" runat="server" Height="150px">

         
<div>这个面板可拖动!</div>

    
</asp:Panel>

</asp:Panel>

</div>

添加DragPanelExtender,并设置相关的参数:

<atlasToolkit:DragPanelExtender ID="DragPanelExtender1" runat="server">            

    
<atlasToolkit:DragPanelProperties 

        
TargetControlID="PanelContenter" 

        DragHandleID
="PanelHeader" />            

</atlasToolkit:DragPanelExtender>

运行效果如下:

拖放:

完整示例下载:http://files.cnblogs.com/Terrylee/DragPanelExtenderDemo.rar

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-08-30 09:32 TerryLee 阅读(2391) 评论(10)  编辑 收藏 网摘 所属分类: [08]  Web开发

  回复  引用    
#1楼 2006-08-31 22:54 | 正树 [未注册用户]
Panel9 怎么也一起被拖动了
  回复  引用  查看    
#2楼 [楼主]2006-09-01 08:40 | TerryLee      
@正树
两个面板共同组成了可拖动的Panel,不是只拖动一个!
  回复  引用  查看    
#3楼 2006-09-05 16:19 | 胡军波      
atlas如何安装,在那里下载!
hbhujunbo@126.com
谢谢!
怕你看不到,留了两次言,别见怪!!!
  回复  引用  查看    
#4楼 [楼主]2006-09-05 17:20 | TerryLee      
@胡军波
http://atlas.asp.net,Atlas的方网站
  回复  引用    
#5楼 2006-09-07 11:55 | james.dong[匿名] [未注册用户]
我在用这个控件时,遇到下面的问题:
<div style="height: 300px; width: 150px; float: left; padding: 5px;">
这一行里的"height"属性一定要设置,不然就不能拖动?这是为什么?
  回复  引用  查看    
#6楼 [楼主]2006-09-07 17:24 | TerryLee      
@james.dong[匿名]
不好意思,这个问题我不太了解
  回复  引用    
#7楼 2006-09-12 15:38 | cr [未注册用户]
@TerryLee
如果我的div是由业务层生成的,有多个且并有次序,那么如何去显示,并且在拖动后,可以把新的位置次序重新回传到业务层呢上呢?
麻烦能给一个这方面的介绍,谢谢
  回复  引用    
#8楼 2006-09-25 15:17 | fangyifeng [未注册用户]
◎TERRYLEE
请问下,因为我的blog里面需要在拖动后记录下每个用户的位置,也就是说他保存后就可以把他的页面上所有的panel或着div记录下来, 这记录的功能怎么实现呢?
  回复  引用  查看    
#9楼 [楼主]2006-09-26 08:35 | TerryLee      
@fangyifeng
可以参考Dflying的文章
http://dflying.cnblogs.com/archive/2006/04/29/388560.html
  回复  引用    
#10楼 2007-01-17 00:29 | snyod [未注册用户]
呵呵..你这个怎么不能回复同样的消息..
不好意思了.为了感谢为.NET平台献出贡献的您.我在每一个回复的同样消息后面加了个点(.)



代表党(.NET平台)感谢您.





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

相关文章:

相关链接: