| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> WEB设计 >> AJAX >> AJAX技巧 >> 文章正文>>>>>> 
ASP.NET AJAX实现网页拖放功能的方法总结

在Ajax程序中实现传统桌面程序中异常简单的拖放功能却并不是件容易的事情。然而Web上的拖放功能又如此的让人痴迷,所以几乎每个成熟的Ajax类库都提供了自己的一套实现拖放的封装,ASP.NET AJAX (Atlas) 自然也不例外。

本文将总结并简要分析ASP.NET AJAX (Atlas) 中拖放功能的6种不同的实现方法,希望能够帮助朋友们选出最适合实际需求的方法。

其中第1到第4种方案,在我的《ASP.NET Ajax程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit》一书中有详细介绍(4月出版),本文中的代码和图示也节选自该书。第5第6种方案,在我的《ASP.NET 2.0 Ajax程序设计——第II卷:客户端Microsoft AJAX Library》一书中将有详细介绍(暂定7月出版)。

不过纵观这些解决方案,我很遗憾的发现,要么是使用简单,可定制能力差,要么就是可定制能力强,但使用起来要写很多代码。希望ASP.NET AJAX (Atlas) 团队能够再接再厉,努力把这个重要功能做得更好。或者我有哪种方法漏掉了,也请朋友们帮忙补充一下。

[1] 使用服务器端DragOverlayExtender或客户端DragOverlayBehavior

服务器端的DragOverlayExtender就是靠着客户端DragOverlayBehavior而实现的,前者是后者在服务器端的组件化封装,所以我们将二者放在一起讨论。

这个“拖放”功能很简单,其实这只是个“拖拽”,而没有“投放”。也就是说,你可以随意将某个Panel在页面中拖来拖去,不过却没有什么固定的地方可以“投放”,就像在Windows桌面上拖放某个窗口的位置一样——其实用处不大,也没有提供什么可定制能力。但它使用起来非常简单,也支持将Panel的位置保存在Profile中。

下面是一段DragOverlayExtender的示例代码,至于DragOverlayBehavior的用法,请查看DragOverlayExtender页面生成的HTML代码:

<asp:Login ID="floatLogin" BackColor="white"
  BorderStyle="Solid" BorderColor="black" 
  runat="server">
</asp:Login>
<asp:DragOverlayExtender ID="DragOverlayExtender2" 
  Enabled="true" TargetControlID="floatLogin" 
  runat="server" />

效果如下:

ASP.NET AJAX 拖放功能6种实现方法总结(图一)

[2] 使用服务器端DragPanel

DragPanel是ASP.NET AJAX Control Toolkit中的一个扩展器控件。其功能基本与DragOverlayExtender和DragOverlayBehavior一样,且同样可以保存Panel的位置信息至Profile中。不同之处在于,DragOverlayExtender和DragOverlayBehavior的拖拽实现方式中,鼠标放在整个Panel的任何部分都可以开始拖拽,而DragPanel在进行拖拽时,只有鼠标放在指定的DragHandle(类似于Windows窗口的标题栏部分)中才能开始拖拽。

对于DragHandle的扩展性和实用性,同样不敢恭维。

下面是一段示例代码:

<asp:Panel ID="floatPanel" CssClass="floatPanel" runat="server">
    <asp:Panel ID="floatPanelHandle" CssClass="handle" runat="server">
        窗口的拖动
    </asp:Panel>
    <div class="content">
        在Windows中,对窗口的拖动似乎成了我们习以为常的事情。
        ………………
        ………………
        Window窗口的表现行为一样。
    </div>
</asp:Panel>
<ajaxToolkit:DragPanelExtender ID="dpe" TargetControlID="floatPanel" 
    DragHandleID="floatPanelHandle" runat="server">
</ajaxToolkit:DragPanelExtender>

效果如下:

ASP.NET AJAX 拖放功能6种实现方法总结(图二)

[1] [2] 下一页


上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    利用ASP.NET AJAX框架开发幻灯片播放网页
    Ajax技术适用和不适用场景简析
    AJAX实现web页面中级联菜单的设计
    AJAX学习基础 -理解JavaScript函数
    详谈基于JSON的高级AJAX开发技术
    AJAX推送与拉取方式的比较
    Mashups+AJAX打造全新Web开发
    AJAX制作目录树
    AJAX应用程序开发七宗罪
    AJAX实列:开发智能Web应用程序
     
     
     
    最新文章
    普通文章 ASP.NET AJAX实现网页拖放功能的最新文章
    普通文章 利用ASP.NET AJAX框架开发幻灯片最新文章
    普通文章 利用FrontPage 2003打造网络申请最新文章
    普通文章 Painter绘制周星弛漫画人物教程最新文章
    普通文章 photoshop制作类似飞行的动态效果最新文章
    普通文章 保护路由器的十四招必杀技最新文章
    普通文章 让Windows Vista网络更安全最新文章
    普通文章 交换机err-disable错误的原因及解最新文章
    普通文章 CISCO 交换机IOS升级引起的故障最新文章
    普通文章 交换机故障的分类和解决步骤最新文章
     
    热门文章
    推荐文章 Photoshop绘制逼真绚丽的金鱼最新文章
    推荐文章 CorelDraw 表格制作终极方案
    推荐文章 Photoshop鼠绘水墨风格的精美荷花
    推荐文章 Fireworks网页界面综合设计实例详
     
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网