做项目碰到一个问题,需要动态的调整记录的排列顺序,并更新数据库相应的序号字段。开始并没考虑使用javascript来做,因为感觉自己对于js还是比较弱,没胆量用js来做,于是开始的时候是用的调整顺序的时候提交数据库改变序号来做,我也知道如果这样对于用户体验是个很不好的效果,但是先把这个能跑起来再说,很快这个就弄完了,我也开始思考如何将这个改为js来做,翻看了网上很多资料,终于给我找到小山的blog上面有个功能更多的datagrid的一个例子,参照这个例子我只选取了部分js代码,经过几次修改大体运行无误了。特记录下代码以供自己和看到自己blog的人使用,
///代码版权归ocean2000(ocean chou),请转载使用的时候注明!
///edit by ocean chou
 
///代码版权归ocean2000(ocean chou),请转载使用的时候注明!
///edit by ocean chou
  1 // JScript 文件
// JScript 文件
2 function get_Element(the_ele){
   function get_Element(the_ele){
3 var res;
        var res;
4 if((the_ele.firstChild == null)||(the_ele.firstChild =='undefined')) return ;
        if((the_ele.firstChild == null)||(the_ele.firstChild =='undefined')) return ;
5 res = the_ele.firstChild;
        res = the_ele.firstChild;
6 if((res.firstChild == null)||(res.firstChild=='undefined')) return;
        if((res.firstChild == null)||(res.firstChild=='undefined')) return;
7 res = res.firstChild;
        res = res.firstChild;
8 if(res.type =='radio') return res;
        if(res.type =='radio') return res;
9 return(null);
        return(null);
10 }
     }
11 
    
12 function change_row(line1,line2){
     function change_row(line1,line2){
13 // debugger;
      // debugger;
14 var the_table =document.getElementById('table_sequence');
       var the_table =document.getElementById('table_sequence');
15 if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
       if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
16 var row1 = the_table.rows[line1];
        var row1 = the_table.rows[line1];
17 var row2 = the_table.rows[line2];
        var row2 = the_table.rows[line2];
18 
        
19 row1.swapNode(row2);
        row1.swapNode(row2);
20 
        
21 var radio = get_Element(row1);
        var radio = get_Element(row1);
22 if(radio != null) radio.checked = true;
        if(radio != null) radio.checked = true;
23 }
     }
24 
     
25 function change_select(line1)
     function change_select(line1)
26 {
     {
27 var the_table =document.getElementById('table_sequence');
        var the_table =document.getElementById('table_sequence');
28 if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
       if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
29 var row1 = the_table.rows[line1];
        var row1 = the_table.rows[line1];
30 
        
31 if((row1 == null)||(row1 == 'undefined')) return;
       if((row1 == null)||(row1 == 'undefined')) return;
32 
        
33 var radio = get_Element(row1);
        var radio = get_Element(row1);
34 if(radio != null) radio.checked = true;
        if(radio != null) radio.checked = true;
35 }
     }
36 
     
37 function leftselect()
     function leftselect()
38 {
     {
39 var i=0
        var i=0
40 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');
41 flag = false;
       flag = false;
42 //debugger;
       //debugger;
43 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
44 return false;
          return false;
45 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)
46 {
       {
47 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)
48 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}
49 }
       }
50 
       
51 if(!flag)
       if(!flag)
52 { alert('select none');return false;}
          { alert('select none');return false;}
53 if(cur_row==null || cur_row<=1)return;
       if(cur_row==null || cur_row<=1)return;
54 change_select(i);
       change_select(i);
55 }
     }
56 
     
57 function rightselect()
     function rightselect()
58 {
     {
59 var i=0
       var i=0
60 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');
61 flag = false;
       flag = false;
62 //debugger;
       //debugger;
63 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
64 return false;
          return false;
65 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)
66 {
       {
67 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)
68 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}
69 }
       }
70 
       
71 if(!flag)
       if(!flag)
72 { alert('select none');return false;}
          { alert('select none');return false;}
73 
          
74 change_select(cur_row+1);
       change_select(cur_row+1);
75 }
     }
76
77 function upRow()
    function upRow()
78 {
    {
79 var i=0
       var i=0
80 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');
81 flag = false;
       flag = false;
82 //debugger;
       //debugger;
83 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
84 return false;
          return false;
85 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)
86 {
       {
87 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)
88 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}
89 }
       }
90 
       
91 if(!flag)
       if(!flag)
92 { alert('select none');return false;}
          { alert('select none');return false;}
93 
          
94 event.cancelBubble=true;
       event.cancelBubble=true;
95 
       
96 if(cur_row==null || cur_row<=1)return;
       if(cur_row==null || cur_row<=1)return;
97 change_row(cur_row,--cur_row);
       change_row(cur_row,--cur_row);
98 }
    }
99 
    
100 function downRow()
    function downRow()
101 {
    {
102 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');
103 var i;
       var i;
104 flag = false;
       flag = false;
105 //debugger;
       //debugger;
106 var the_table =document.getElementById('table_sequence');
       var the_table =document.getElementById('table_sequence');
107 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
108 return false;
          return false;
109 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)
110 {
       {
111 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)
112 {flag = true; cur_row=i+1;break;}
            {flag = true; cur_row=i+1;break;}
113 }
       }
114 
       
115 if(!flag)
       if(!flag)
116 { alert('select none');return false;}
          { alert('select none');return false;}
117 event.cancelBubble=true;
       event.cancelBubble=true;
118 if(cur_row==null || cur_row==the_table.rows.length-1 || cur_row==0)return;
       if(cur_row==null || cur_row==the_table.rows.length-1 || cur_row==0)return;
119 change_row(cur_row,++cur_row);
       change_row(cur_row,++cur_row);
120 
       
121 }
    }
122 
    
123 function Check()
    function Check()
124 {
    {
125 //debugger;
        //debugger;
126 var selectitem = document.getElementsByName('SelectItem');
        var selectitem = document.getElementsByName('SelectItem');
127 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
        if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
128 return false;
          return false;
129 var hiddenID = document.getElementById('hiddenID');
        var hiddenID = document.getElementById('hiddenID');
130 hiddenID.value='';
        hiddenID.value='';
131 
        
132 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)
133 {
       {
134 if(hiddenID.value =='')
          if(hiddenID.value =='')
135 hiddenID.value = selectitem[i].value;
             hiddenID.value = selectitem[i].value;
136 else
          else
137 hiddenID.value = hiddenID.value + '`'+selectitem[i].value;
             hiddenID.value = hiddenID.value + '`'+selectitem[i].value;
138 }
       } 
139 
        
140 }
    }
141
aspx页面的head部分加入 // JScript 文件
// JScript 文件2
 function get_Element(the_ele){
   function get_Element(the_ele){3
 var res;
        var res;4
 if((the_ele.firstChild == null)||(the_ele.firstChild =='undefined')) return ;
        if((the_ele.firstChild == null)||(the_ele.firstChild =='undefined')) return ;5
 res = the_ele.firstChild;
        res = the_ele.firstChild;6
 if((res.firstChild == null)||(res.firstChild=='undefined')) return;
        if((res.firstChild == null)||(res.firstChild=='undefined')) return;7
 res = res.firstChild;
        res = res.firstChild;8
 if(res.type =='radio') return res;
        if(res.type =='radio') return res;9
 return(null);
        return(null);10
 }
     }11
 
    12
 function change_row(line1,line2){
     function change_row(line1,line2){13
 // debugger;
      // debugger;14
 var the_table =document.getElementById('table_sequence');
       var the_table =document.getElementById('table_sequence');15
 if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
       if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}16
 var row1 = the_table.rows[line1];
        var row1 = the_table.rows[line1];17
 var row2 = the_table.rows[line2];
        var row2 = the_table.rows[line2];18
 
        19
 row1.swapNode(row2);
        row1.swapNode(row2);20
 
        21
 var radio = get_Element(row1);
        var radio = get_Element(row1);22
 if(radio != null) radio.checked = true;
        if(radio != null) radio.checked = true;23
 }
     }24
 
     25
 function change_select(line1)
     function change_select(line1)26
 {
     {27
 var the_table =document.getElementById('table_sequence');
        var the_table =document.getElementById('table_sequence');28
 if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}
       if((the_table == null)||(the_table =='undefined')){ alert('程序异常'); return;}29
 var row1 = the_table.rows[line1];
        var row1 = the_table.rows[line1];30
 
        31
 if((row1 == null)||(row1 == 'undefined')) return;
       if((row1 == null)||(row1 == 'undefined')) return;32
 
        33
 var radio = get_Element(row1);
        var radio = get_Element(row1);34
 if(radio != null) radio.checked = true;
        if(radio != null) radio.checked = true;35
 }
     }36
 
     37
 function leftselect()
     function leftselect()38
 {
     {39
 var i=0
        var i=040
 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');41
 flag = false;
       flag = false;42
 //debugger;
       //debugger;43
 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))44
 return false;
          return false;45
 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)46
 {
       {47
 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)48
 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}49
 }
       }50
 
       51
 if(!flag)
       if(!flag)52
 { alert('select none');return false;}
          { alert('select none');return false;}53
 if(cur_row==null || cur_row<=1)return;
       if(cur_row==null || cur_row<=1)return;54
 change_select(i);
       change_select(i);55
 }
     }56
 
     57
 function rightselect()
     function rightselect()58
 {
     {59
 var i=0
       var i=060
 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');61
 flag = false;
       flag = false;62
 //debugger;
       //debugger;63
 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))64
 return false;
          return false;65
 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)66
 {
       {67
 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)68
 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}69
 }
       }70
 
       71
 if(!flag)
       if(!flag)72
 { alert('select none');return false;}
          { alert('select none');return false;}73
 
          74
 change_select(cur_row+1);
       change_select(cur_row+1);75
 }
     }76

77
 function upRow()
    function upRow()78
 {
    {79
 var i=0
       var i=080
 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');81
 flag = false;
       flag = false;82
 //debugger;
       //debugger;83
 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))84
 return false;
          return false;85
 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)86
 {
       {87
 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)88
 {flag = true;cur_row =i+1;break;}
            {flag = true;cur_row =i+1;break;}89
 }
       }90
 
       91
 if(!flag)
       if(!flag)92
 { alert('select none');return false;}
          { alert('select none');return false;}93
 
          94
 event.cancelBubble=true;
       event.cancelBubble=true;95
 
       96
 if(cur_row==null || cur_row<=1)return;
       if(cur_row==null || cur_row<=1)return;97
 change_row(cur_row,--cur_row);
       change_row(cur_row,--cur_row);98
 }
    }99
 
    100
 function downRow()
    function downRow()101
 {
    {102
 var selectitem = document.getElementsByName('SelectItem');
       var selectitem = document.getElementsByName('SelectItem');103
 var i;
       var i;104
 flag = false;
       flag = false;105
 //debugger;
       //debugger;106
 var the_table =document.getElementById('table_sequence');
       var the_table =document.getElementById('table_sequence');107
 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
       if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))108
 return false;
          return false;109
 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)110
 {
       {111
 if(selectitem[i].checked == true)
          if(selectitem[i].checked == true)112
 {flag = true; cur_row=i+1;break;}
            {flag = true; cur_row=i+1;break;}113
 }
       }114
 
       115
 if(!flag)
       if(!flag)116
 { alert('select none');return false;}
          { alert('select none');return false;}117
 event.cancelBubble=true;
       event.cancelBubble=true;118
 if(cur_row==null || cur_row==the_table.rows.length-1 || cur_row==0)return;
       if(cur_row==null || cur_row==the_table.rows.length-1 || cur_row==0)return;119
 change_row(cur_row,++cur_row);
       change_row(cur_row,++cur_row);120
 
       121
 }
    }122
 
    123
 function Check()
    function Check()124
 {
    {125
 //debugger;
        //debugger;126
 var selectitem = document.getElementsByName('SelectItem');
        var selectitem = document.getElementsByName('SelectItem');127
 if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))
        if((selectitem ==null)||(selectitem == 'undefined')||(selectitem.length <=0))128
 return false;
          return false;129
 var hiddenID = document.getElementById('hiddenID');
        var hiddenID = document.getElementById('hiddenID');130
 hiddenID.value='';
        hiddenID.value='';131
 
        132
 for(i=0;i<selectitem.length;i++)
       for(i=0;i<selectitem.length;i++)133
 {
       {134
 if(hiddenID.value =='')
          if(hiddenID.value =='')135
 hiddenID.value = selectitem[i].value;
             hiddenID.value = selectitem[i].value;136
 else
          else137
 hiddenID.value = hiddenID.value + '`'+selectitem[i].value;
             hiddenID.value = hiddenID.value + '`'+selectitem[i].value;138
 }
       } 139
 
        140
 }
    }141

 1 <script type = "Text/javascript">
 <script type = "Text/javascript">
2 var cur_row    = null;
     var cur_row    = null;
3 var flag = false;
     var flag = false;
4 document.onkeydown=function(){
     document.onkeydown=function(){
5 // debugger;
    // debugger;
6 var s = event.keyCode;
     var s = event.keyCode;
7 if(s == 37)
     if(s == 37)
8 leftselect();
       leftselect();
9 if(s == 38)
     if(s == 38)
10 upRow();
       upRow();
11 if(s == 39)
     if(s == 39)
12 rightselect();
       rightselect();
13 if(s ==40)
     if(s ==40)
14 downRow();
       downRow();
15 }
     }
16 </script>
    </script>
然后后台通过读取hidden变量的值根据其顺序来得改变记录的顺序同时更新数据库相应字段。
 <script type = "Text/javascript">
 <script type = "Text/javascript">2
 var cur_row    = null;
     var cur_row    = null;3
 var flag = false;
     var flag = false;4
 document.onkeydown=function(){
     document.onkeydown=function(){5
 // debugger;
    // debugger;6
 var s = event.keyCode;
     var s = event.keyCode;7
 if(s == 37)
     if(s == 37)8
 leftselect();
       leftselect();9
 if(s == 38)
     if(s == 38)10
 upRow();
       upRow();11
 if(s == 39)
     if(s == 39)12
 rightselect();
       rightselect();13
 if(s ==40)
     if(s ==40)14
 downRow();
       downRow();15
 }
     }16
 </script>
    </script> 
                     
                    
                 
                    
                
 
        
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号