如何在asp.net中实现listbox item值上下移动?(转)

全部.net为:
 1     < form  id ="myform"  runat ="server" >
 2    
< div >
 3            
< asp:ObjectDataSource  ID ="ObjectDataSource1"  runat ="server"  OldValuesParameterFormatString ="original_{0}"
 4            SelectMethod
="GetDepartmentsAll"  TypeName ="Cvv.BLL.Bases.DepartmentBLL" ></ asp:ObjectDataSource >
 5         
< table   border ="0"   width ="300" >
 6           
< tr >
 7           
< td  colspan ="4"  align =center >
 8               流程名称:
< asp:TextBox  ID ="tbProcessName"  runat ="server" ></ asp:TextBox >
 9                         
< asp:RequiredFieldValidator  ID ="rfvProcessName"  runat ="server"  ErrorMessage ="请输入"  ControlToValidate ="tbProcessName"  Display ="Dynamic" > * </ asp:RequiredFieldValidator >
10                         
< asp:RegularExpressionValidator  ID ="revProcessName"  runat ="server"  ErrorMessage ="请不要输入单引号和空白"  ControlToValidate ="tbProcessName"  ValidationExpression ="[^'\s]{1,50}"  Display ="Dynamic" ></ asp:RegularExpressionValidator >                
11               
</ td >
12           
</ tr >          
13           
< tr >   
14           
< td  width ="40%" > 部门列表 </ td >   
15           
< td   align ="center"  style ="width: 20%" > 操作 </ td >   
16           
< td  style ="width: 40%" > 流程顺序 </ td >   
17           
< td  style ="width: 43px" > 调整 </ td >   
18           
</ tr >   
19             
< tr >
20                 
< td  style ="width: 40%" >
21                     
< asp:ListBox  ID ="ListBox1"  runat ="server"  DataSourceID ="ObjectDataSource1"  DataTextField ="DepartmentName"
22                         DataValueField
="DepartmentID"  Height ="411px"  SelectionMode ="Multiple"  Width ="235px" >
23                     
</ asp:ListBox ></ td >
24                 
< td  align ="center"  style ="width: 20%" >
25                     
< asp:Button  ID ="Addbtn"  runat ="server"  OnClick ="Addbtn_Click"  Text ="添加"   />< br >< br >
26                     
< asp:Button  ID ="Deletebtn"  runat ="server"  OnClick ="Deletebtn_Click"  Text ="删除"   /></ td >
27                 
< td  style ="width: 40%" >
28                     
< asp:ListBox  ID ="ListBox2"  runat ="server"  Height ="411px"  SelectionMode ="Multiple"
29                         Width
="235px" ></ asp:ListBox ></ td >
30                 
< td  style ="width: 43px" >
31                     
< asp:Button  ID ="Upbtn"  runat ="server"  OnClick ="Upbtn_Click"  Text ="上移"   />< br >< br >
32                     
< asp:Button  ID ="Downbtn"  runat ="server"  OnClick ="Downbtn_Click"  Text ="下移"   /></ td >
33             
</ tr >
34             
< tr >
35                 
< td  colspan ="4"  align =center >
36                     
< asp:Button  ID ="precessadd"  runat ="server"  Text ="确认并提交"  OnClick ="precessadd_Click"   /></ td >
37             
</ tr >
38         
</ table >   
39
< input  id ="ListBox1_Click"  type ="hidden"  value ="false"  name ="ListBox1_Click"  runat ="server" >
40
< input  id ="ListBox2_Click"  type ="hidden"  value ="false"  name ="ListBox2_Click"  runat ="server" >
41
< script  language ="vbscript" >
42
option explicit            
43
sub ListBox1_ondblclick()
44myform.ListBox1_Click.value
="true"
45myform.submit()
46
end sub
47
48
sub ListBox2_ondblclick()
49myform.ListBox2_Click.value
="true"
50myform.submit()
51
end sub
52
</ script >
53    
</ div >
54    
</ form >

后台代码:
   1      protected   void  Page_Load( object  sender, EventArgs e)
  
2      {
  
3        if (IsPostBack)
  
4        {
  
5            if (ListBox1_Click.Value == "true")
  
6            {
  
7                Addbtn_Click(sender,e);
  
8            }

  
9                
 
10
 
11            if (ListBox2_Click.Value == "true")
 
12            {
 
13                Deletebtn_Click(sender,e);
 
14            }

 
15        }

 
16    }

 
17      protected   void  precessadd_Click( object  sender, EventArgs e)
 
18      {
 
19        if (IsValid)
 
20        {
 
21            //写入流程名称
 22            //声明实体类
 23            Cvv.Mode.Bases.Process _process = new Cvv.Mode.Bases.Process();
 
24
 
25            //从表单中取值初始化实体类
 26            _process.ProcessName = tbProcessName.Text;
 
27
 
28            //声明业务对象
 29            Cvv.BLL.Bases.ProcessBLL _processBLL = new Cvv.BLL.Bases.ProcessBLL();
 
30            if (_processBLL.InsertProcess(_process) > 0)        //操作成功
 31            {
 
32
 
33            }

 
34            else        //操作失败
 35            {
 
36                Response.Write("<script>alert('很抱歉,添加失败!');location.href ='" + Request.ServerVariables["HTTP_REFERER"+ "';</Script>");
 
37                Response.End();
 
38            }

 
39
 
40            //写入流程过程
 41            //声明实体类.声明业务对象
 42            Cvv.Mode.Bases.ProcessDetailed _processDetailed = new Cvv.Mode.Bases.ProcessDetailed();
 
43            Cvv.BLL.Bases.ProcessDetailedBLL _processDetailedBLL = new Cvv.BLL.Bases.ProcessDetailedBLL();
 
44
 
45            //从表单中取值初始化实体类,并循环写入
 46            for (int i = 0; i < ListBox2.Items.Count; i++)
 
47            {
 
48                _processDetailed.ProcessID = _process.ProcessID;
 
49                _processDetailed.DepartmentID = new Guid(ListBox2.Items[i].Value);
 
50                _processDetailed.ProcessOrder = i + 1;
 
51                //写入
 52                _processDetailedBLL.InsertProcessDetailed(_processDetailed);
 
53
 
54            }

 
55            Response.Write("<script>alert('祝贺您,添加成功,请继续操作!');location.href ='" + Request.ServerVariables["HTTP_REFERER"+ "';</Script>");
 
56        }

 
57    }

 
58
 
59      // 添加
  60      protected   void  Addbtn_Click( object  sender, EventArgs e)
 
61      {
 
62        int i = 0;
 
63        while (i < ListBox1.Items.Count)
 
64        {
 
65            if (ListBox1.Items[i].Selected == true)
 
66            {
 
67                ListBox2.Items.Add(ListBox1.Items[i]);
 
68                ListBox1.Items.Remove(ListBox1.Items[i]);
 
69            }

 
70            else
 
71                i += 1;
 
72        }

 
73    }

 
74      // 删除
  75      protected   void  Deletebtn_Click( object  sender, EventArgs e)
 
76      {
 
77        int i = 0;
 
78        while (i < ListBox2.Items.Count)
 
79        {
 
80            if (ListBox2.Items[i].Selected == true)
 
81            {
 
82                ListBox1.Items.Add(ListBox2.Items[i]);
 
83                ListBox2.Items.Remove(ListBox2.Items[i]);
 
84            }

 
85            else
 
86                i += 1;
 
87        }

 
88    }

 
89      // 上移
  90      protected   void  Upbtn_Click( object  sender, EventArgs e)
 
91      {
 
92        //若不是第一行则上移
 93        if (ListBox2.SelectedIndex > 0)
 
94        {
 
95            string name = ListBox2.SelectedItem.Text;
 
96            string ID = ListBox2.SelectedItem.Value;
 
97            int index = ListBox2.SelectedIndex;
 
98            ListBox2.SelectedItem.Text = ListBox2.Items[index - 1].Text;
 
99            ListBox2.SelectedItem.Value = ListBox2.Items[index - 1].Value;
100            ListBox2.Items[index - 1].Text = name;
101            ListBox2.Items[index - 1].Value = ID;
102            ListBox2.SelectedIndex--;
103        }

104    }

105      // 下移
106      protected   void  Downbtn_Click( object  sender, EventArgs e)
107      {
108        //若不是最后一行则下移
109        if (ListBox2.SelectedIndex >= 0 && ListBox2.SelectedIndex < ListBox2.Items.Count - 1)
110        {
111            string name = ListBox2.SelectedItem.Text;
112            string ID = ListBox2.SelectedItem.Value;
113            int index = ListBox2.SelectedIndex;
114            ListBox2.SelectedItem.Text = ListBox2.Items[index + 1].Text;
115            ListBox2.SelectedItem.Value = ListBox2.Items[index + 1].Value;
116            ListBox2.Items[index + 1].Text = name;
117            ListBox2.Items[index + 1].Value = ID;
118            ListBox2.SelectedIndex++;
119        }

120    }

在.net中使用obojectdata为:

 1     < form  id ="myform"  runat ="server" >
 2    
< div >
 3         
< table   border ="0"   width ="300" >   
 4             
< tr >   
 5             
< td   width ="40%" >
 6            
< asp:ObjectDataSource  ID ="ObjectDataSource1"  runat ="server"  OldValuesParameterFormatString ="original_{0}"
 7            SelectMethod
="GetDepartmentsAll"  TypeName ="Cvv.BLL.Bases.DepartmentBLL" ></ asp:ObjectDataSource >
 8            
< asp:ListBox  ID ="list1"  runat ="server"  DataSourceID ="ObjectDataSource1"  DataTextField ="DepartmentName"
 9            DataValueField
="DepartmentID"  Height ="411px"  Width ="235px"  ondblclick ="moveOption(document.myform.list1,document.myform.list2)" ></ asp:ListBox >              
10           
</ td >   
11           
< td   width ="20%"   align ="center" >   
12                
< input   type ="button"   value ="添加"   onclick ="moveOption(document.myform.list1,document.myform.list2)" >< br >< br >
13                
< input   type ="button"   value ="删除"   onclick ="moveOption(document.myform.list2,document.myform.list1)" >  
14           
</ td >   
15           
< td   width ="40%" >
16           
< asp:ListBox  ID ="list2"  runat ="server"  ondblclick ="moveOption(document.myform.list2,document.myform.list1)"  Height ="411px"  Width ="235px" ></ asp:ListBox >   
17           
</ td >   
18           
< td >   
19               
< button   onclick ="changepos(list2,-1)"   type ="button" > 上移 </ button >< br >   
20               
< button   onclick ="changepos(list2,1)"   type ="button" > 下移 </ button >   
21           
</ td >   
22           
</ tr >   
23         
</ table >   
24
< script   language ="JavaScript" >   
25<!--  
26
function  moveOption(e1,  e2){  
27           try{  
28           for(var  i=0;i<e1.options.length;i++){  
29           if(e1.options[i].selected){  
30           var  e  =  e1.options[i];  
31           e2.options.add(new  Option(e.text,  e.value));  
32           e1.remove(i);  
33           i=i-1  
34           }
  
35           }
  
36           //document.myform.city.value=getvalue(document.myform.list2);  
37           }
  
38           catch(e){}  
39}
  
40
function  getvalue(geto){  
41           var  allvalue  =  "";  
42           for(var  i=0;i<geto.options.length;i++){  
43           allvalue  +=geto.options[i].value  +  ",";  
44           }
  
45           return  allvalue;  
46}
  
47
function  changepos(obj,index)  
48{  
49           if(index==-1){  
50           if  (obj.selectedIndex>0){  
51           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex-1))  
52           }
  
53           }
  
54           else  if(index==1){  
55           if  (obj.selectedIndex<obj.options.length-1){  
56           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex+1))  
57           }
  
58           }
  
59}
  
60//-->  
61
</ script >   
62    
</ div >
63    
</ form >

下面是通用的:
 1     < form  id ="myform"  runat ="server" >
 2    
< div >
 3         
< table   border ="0"   width ="300" >   
 4             
< tr >   
 5             
< td   width ="40%" >
 6                 
< select   style ="WIDTH:100%"   multiple  name ="list1"   size ="12"   ondblclick ="moveOption(document.myform.list1,  document.myform.list2)" >   
 7                 
< option   value ="北京" > 北京 </ option >   
 8                 
< option   value ="上海" > 上海 </ option >   
 9                 
< option   value ="山东" > 山东 </ option >   
10                 
< option   value ="安徽" > 安徽 </ option >   
11                 
< option   value ="重庆" > 重庆 </ option >   
12                 
< option   value ="福建" > 福建 </ option >   
13                 
< option   value ="甘肃" > 甘肃 </ option >   
14                 
< option   value ="广东" > 广东 </ option >   
15                 
< option   value ="广西" > 广西 </ option >   
16                 
< option   value ="贵州" > 贵州 </ option >   
17                 
< option   value ="海南" > 海南 </ option >   
18                 
< option   value ="河北" > 河北 </ option >   
19                 
< option   value ="黑龙江" > 黑龙江 </ option >   
20                 
< option   value ="河南" > 河南 </ option >   
21                 
< option   value ="湖北" > 湖北 </ option >   
22                 
< option   value ="湖南" > 湖南 </ option >   
23                 
< option   value ="内蒙古" > 内蒙古 </ option >   
24                 
< option   value ="江苏" > 江苏 </ option >   
25                 
< option   value ="江西" > 江西 </ option >   
26                 
< option   value ="吉林" > 吉林 </ option >   
27                 
< option   value ="辽宁" > 辽宁 </ option >   
28                 
< option   value ="宁夏" > 宁夏 </ option >   
29                 
< option   value ="青海" > 青海 </ option >   
30                 
< option   value ="山西" > 山西 </ option >   
31                 
< option   value ="陕西" > 陕西 </ option >   
32                 
< option   value ="四川" > 四川 </ option >   
33                 
< option   value ="天津" > 天津 </ option >   
34                 
< option   value ="西藏" > 西藏 </ option >   
35                 
< option   value ="新疆" > 新疆 </ option >   
36                 
< option   value ="云南" > 云南 </ option >   
37                 
< option   value ="浙江" > 浙江 </ option >   
38                 
< option   value ="香港" > 香港 </ option >   
39                 
< option   value ="澳门" > 澳门 </ option >   
40                 
< option   value ="台湾" > 台湾 </ option >   
41                 
< option   value ="其他" > 其他 </ option >   
42                 
</ select >   
43           
</ td >   
44           
< td   width ="20%"   align ="center" >   
45                
< input   type ="button"   value ="添加"   onclick ="moveOption(document.myform.list1,  document.myform.list2)" >< br >< br >
46                
< input   type ="button"   value ="删除"   onclick ="moveOption(document.myform.list2,  document.myform.list1)" >  
47           
</ td >   
48           
< td   width ="40%" >   
49               
< select   style ="WIDTH:100%"   multiple  name ="list2"   size ="12"   ondblclick ="moveOption(document.myform.list2,  document.myform.list1)" >   
50               
</ select >   
51           
</ td >   
52           
< td >   
53               
< button   onclick ="changepos(list2,-1)"   type ="button" > 上移 </ button >< br >   
54               
< button   onclick ="changepos(list2,1)"   type ="button" > 下移 </ button >   
55           
</ td >   
56           
</ tr >   
57         
</ table >   
58           值:
< input   type ="text"   name ="city"   size ="40" >   
59
< script   language ="JavaScript" >   
60<!--  
61
function  moveOption(e1,  e2){  
62           try{  
63           for(var  i=0;i<e1.options.length;i++){  
64           if(e1.options[i].selected){  
65           var  e  =  e1.options[i];  
66           e2.options.add(new  Option(e.text,  e.value));  
67           e1.remove(i);  
68           i=i-1  
69           }
  
70           }
  
71           document.myform.city.value=getvalue(document.myform.list2);  
72           }
  
73           catch(e){}  
74}
  
75
function  getvalue(geto){  
76           var  allvalue  =  "";  
77           for(var  i=0;i<geto.options.length;i++){  
78           allvalue  +=geto.options[i].value  +  ",";  
79           }
  
80           return  allvalue;  
81}
  
82
function  changepos(obj,index)  
83{  
84           if(index==-1){  
85           if  (obj.selectedIndex>0){  
86           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex-1))  
87           }
  
88           }
  
89           else  if(index==1){  
90           if  (obj.selectedIndex<obj.options.length-1){  
91           obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex+1))  
92           }
  
93           }
  
94}
  
95//-->  
96
</ script >   
97    
</ div >
98    
</ form >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值