当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET 2.0+Atlas编写鼠标拖放程序(4)

 ASP.NET 2.0+Atlas编写鼠标拖放程序(4)

点击次数:23 次 发布日期:2008-11-26 12:34:22 作者:源代码网
源代码网推荐      六. 强制性Dropzone
源代码网推荐  
源代码网推荐    为了使用JavaScript代替声明性脚本创建dropzone,仅需要使用定制的dropzone行为添加如下的JavaScript函数来初始化你的dropzone元素:
源代码网推荐  
源代码网推荐  function addDropZoneBehavior(ctrl){
源代码网推荐   var dropZone = new Sys.UI.Control(ctrl);
源代码网推荐   var dropZoneBehavior = new Custom.UI.DropZoneBehavior();
源代码网推荐   dropZone.get_behaviors().add(dropZoneBehavior);
源代码网推荐   dropZoneBehavior.initialize();
源代码网推荐  }
源代码网推荐  
源代码网推荐    为了"钩住"一切,你可以调用这个来自Atlas pageLoad()方法的addDropZoneBehavior函数(就象你在前面的示例中操作addFloatingBehavior函数一样)。这样可以把正确的行为依附到它们各自的HTML元素并且复制上面你使用声明性标记所创建的拖放和dropzone功能。如果你想使此能够动态工作,那么你只要添加你为上一个示例编写的createDraggableDiv()函数即可。作为一种参考,下面是创建可编程dropzone的完整代码:
源代码网推荐  
源代码网推荐  <%@ Page Language="C#" %>
源代码网推荐  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
源代码网推荐  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
源代码网推荐  <html XMLns="http://www.w3.org/1999/xhtml" >
源代码网推荐  <head id="Head1" runat="server">
源代码网推荐  <title>Imperative Drop Targets</title>
源代码网推荐  <script type="text/javascript">
源代码网推荐  function addFloatingBehavior(ctrl, ctrlHandle){
源代码网推荐   var floatingBehavior = new Sys.UI.FloatingBehavior();
源代码网推荐   floatingBehavior.set_handle(ctrlHandle);
源代码网推荐   var dragItem = new Sys.UI.Control(ctrl);
源代码网推荐   dragItem.get_behaviors().add(floatingBehavior);
源代码网推荐   floatingBehavior.initialize();
源代码网推荐  }
源代码网推荐  function addDropZoneBehavior(ctrl){
源代码网推荐   var dropZone = new Sys.UI.Control(ctrl);
源代码网推荐   var dropZoneBehavior = new Custom.UI.DropZoneBehavior();
源代码网推荐   dropZone.get_behaviors().add(dropZoneBehavior);
源代码网推荐   dropZoneBehavior.initialize();
源代码网推荐  }
源代码网推荐  function pageLoad(){
源代码网推荐   addDropZoneBehavior($("dropZone"));
源代码网推荐   addFloatingBehavior($("draggableDiv"),$("handleBar"));
源代码网推荐  }
源代码网推荐  </script>
源代码网推荐  </head>
源代码网推荐  <body>
源代码网推荐  <form id="form1" runat="server">
源代码网推荐   <atlas:ScriptManager ID="ScriptManager1" runat="server">
源代码网推荐    <Scripts>
源代码网推荐     <atlas:ScriptReference ScriptName="AtlasUIDragDrop" />
源代码网推荐     <atlas:ScriptReference Path="scriptLibrary/DropZoneBehavior.js" />
源代码网推荐    </Scripts>
源代码网推荐   </atlas:ScriptManager>
源代码网推荐  <h2>Imperative Drop Targets with javacript</h2>
源代码网推荐  <div style="background-color:Red;height:200px;width:200px;">
源代码网推荐  <div id="draggableDiv"
源代码网推荐  style="height:100px;width:100px;background-color:Blue;">
源代码网推荐  <div id="handleBar"
源代码网推荐  style="height:20px;width:auto;background-color:Green;">
源代码网推荐  </div>
源代码网推荐  </div>
源代码网推荐  </div>
源代码网推荐  <div id="dropZone" style="background-color:cornflowerblue;
源代码网推荐  height:200px;width:200px;">Drop Zone</div>
源代码网推荐  </form>
源代码网推荐  </body>
源代码网推荐  </html>
源代码网推荐  
源代码网推荐    除了dropzone行为以外,你可能还想写你自己的漂浮行为。例如,默认地,带有漂浮行为的元素只是简单地停留在你放下它们的位置。然而,你可能想扩展这一特征以便你的漂浮div会"退回"到它原来的位置-当你把它放到一个投放区外的时候。另外,当你拖动它时,你可能想改变被拖放的元素看上去的样子,或使它透明,或改变它的颜色,或全部替换原来的拖动图像。所有这些都可以通过创建实现IDragSource接口的一种行为来实现,这与你创建一个实现IDropTarget接口的定制类是思路一样。
源代码网推荐  
源代码网推荐    七. 总结
源代码网推荐  
源代码网推荐    本文应该为你扩展Atlas提供的基本拖放功能来创建你自己的行为和功能提供了一个起点。而且,你可以基于此创建控件;还可以在此基础上继续创建使用声明性标记实现你的行为的Atlas扩展控件,或创建使用Atlas行为自动创建HTML元素的服务器端控件。这样以来,你就可以进一步创建高级服务器端控件-或者是静态的声明性的,或者是强制性的,却更复杂些但也更灵活。当然,这是一个超出本文题目的问题。不过,我希望,此后有人会尝试服务器端Atlas编程,正象本文所作的客户端Atlas脚本编程尝试一样。
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华