博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net中实现Gridview的多行拖放, 以及跨控件拖放
阅读量:7136 次
发布时间:2019-06-28

本文共 3748 字,大约阅读时间需要 12 分钟。

学习JQuery时,发现JQuery只能做单行拖放, 于是花时间做了一个多行拖放的例子, 以备以后使用。 

 

 

 

<html xmlns="">

<head runat="server">
    <title></title>
 <script type="text/javascript" src="jquery-1.3.2.js"></script>
 <script type="text/javascript" src="jquery-ui-1.7.2.custom.js"></script>

 <script type="text/javascript">

  //===================================

  //dragg and drop sample program
  //authored by 
  //2009-11-11
  //===================================
  
  
  //temporary var that stored selected rows
  var SelectedRows = [];
  
  //forbid all select
  document.onselectstart = function() { return false; } 
  
  //fires when dragg object go out the source table
  $(document).mouseup(function() {
   $(".float").hide();
   $(".float")[0].innerHTML = "";
   IsDragging = false;
  }
  ).mousemove(function(e) {
   if (IsDragging == true) {
    $(".float").css("top", e.clientY + 2);
    $(".float").css("left", e.clientX + 2);
    $(".float").show();
   }
  });
  
  // flag that indicates whether is during dragging
  var IsDragging = false;

  //using  jquery give mouse event to each rows 

  $(document).ready(function() {
   $(".stripe tr").mousedown(
      function(e) {
       if (this.innerHTML.substring(0, 3) == "<TH") return false;
       if (!e) var e = window.event;
       if (!e.ctrlKey) {
        unselectAll();

       }

       if ($(this).context.className == "over") {

        $(this).removeClass("over");
        unselect();
       }
       else {
        $(this).addClass("over");
        SelectedRows.push($(this));
        //set style
        $(".float").css("top", e.clientY + 5);
        $(".float").css("left", e.clientX + 5);
        $(".float").css("zIndex", 1);
        $(".float").css("position", "absolute");
        $(".float").width($(this).width());
        $(".float").height($(this).height() * SelectedRows.length);

        for (var i = 0; i < SelectedRows.length; i++) {

         $(".float").append(SelectedRows[i].clone());
        }

        $(".float").wrapInner("<table></table>");

       }

      }

    ).mouseup(function() {
      if (this.innerHTML.substring(0, 3) == "<TH") {
       $(".float").fadeOut("normal");
       $(".float")[0].innerHTML = "";
       IsDragging = false;
      } ;

     if ($(this).context.className != "over" && IsDragging == 1) {

      DraggStop($(this));

     }

    }).mousemove(function(e) {

     if (this.innerHTML.substring(0, 3) == "<TH") return false;

     if (e.button == 1) {

      IsDragging = true;
      $(".float").css("top", e.clientY + 2);
      $(".float").css("left", e.clientX + 2);
      $(".float").fadeIn("normal"); //show();
     }
    })

   });

  // function that re-sort rows 

  function DraggStop(item) {
   $(".stripe tr").each(function() {
    if (this.className == "over") {
     $(this).insertBefore(item);
    }
   });
  }

  //clear all selected rows

  function unselectAll() {
   for (var i = SelectedRows.length-1; i > -1; i--)
   {
    SelectedRows[i].removeClass("over");
    SelectedRows.pop(i);
   }
  }
  //un-select current row
  function unselect() {
   for (var i = SelectedRows.length-1; i > -1; i--)
   {
    if (SelectedRows[i].context.className != "over") {
     SelectedRows[i].removeClass("over");
     SelectedRows.pop(i);
    }
   }
  }

  //acceptable control's mouse event

  function Dropable(e) {
   if (IsDragging == true) {
    var txt = document.getElementById("TextBox1")
    txt.value = "";
    $(".stripe tr").each(function() {

    if (this.className == "over") {

     txt.value = txt.value + this.innerHTML + "/r/n";
     }
    });
   }
   }
  
 </script>

 <style type="text/css">

  th
  {
   background: #0066FF;
   color: #FFFFFF;
   line-height: 20px;
   height: 30px;
  }
  td
  {
   padding: 6px 11px;
   border-bottom: 1px solid #95bce2;
   vertical-align: top;
   text-align: center;
  }
  td *
  {
   padding: 6px 11px;
  }
  tr.alt td
  {
   background: #ecf6fc; /*这行将给所有的tr加上背景色*/
  }
  tr.over td
  {
   background: #bcd4ec; /*这个将是鼠标高亮行的背景色*/
  }

 </style>

</head>
<body>

<div class="float">

</div>
 <form id="form1" runat="server">
 <asp:GridView ID="selectable"  runat="server" class="stripe">
 </asp:GridView>
 <asp:TextBox ID="TextBox1" runat="server" οnmοuseοver="Dropable();" 
  Height="210px" TextMode="MultiLine" Width="772px" ></asp:TextBox>
 </form>
</body>
</html>

转载于:https://www.cnblogs.com/tingfeng/articles/5120782.html

你可能感兴趣的文章
安装并部署DPM 2010服务器
查看>>
MBR与GPT分区格式(实例-创建大于2TB的分区)
查看>>
技术,技术人员,谁是风,谁是草
查看>>
Android应用程序键盘(Keyboard)消息处理机制分析(6)
查看>>
浅谈软件开发定律系列之帕金森定律(Parkinson’s Law)
查看>>
.NET简谈事务、分布式事务处理
查看>>
Windows操作系统的发展历史
查看>>
拆分又遇变数,传赛门铁克或将出售VERITAS,这又是挖的什么坑?
查看>>
UGC“废水”还是“良药”?56、人人"抱团"上路
查看>>
SCCM2012系列之十一,SCCM2012软件更新部署配置
查看>>
也谈大公司病4——大公司中的反模式
查看>>
基于IP-PBX的VoIP系统解决方案
查看>>
《Python从小白到大牛》第1章 开篇综述
查看>>
Word 2003中为什么修改一个段落的文章结果整篇文档的格式都变?
查看>>
安装 SQL Server Express 版本
查看>>
部署Lync Server 2013持久聊天即群聊功能
查看>>
VMware View 5.0从菜鸟到高手系列 7 -分配虚拟桌面篇
查看>>
Hyper-V 3虚拟机快照之一 快照应用介绍
查看>>
ASP.NET中页面传值
查看>>
Flex4中动态生成RadioButton,绑定数据源
查看>>