两个ListBox的互动

适合:
.Net 2.0
VS2005
效果:
两个ListBox的互动


ASPX页面:       
  < table >
   
< tbody >
      
< tr >
         
< td >
            
< asp:ListBox ID = " lbLeft "  runat = " server "  SelectionMode = " Multiple " >
               
< asp:ListItem > 添加名字 </ asp:ListItem >
               
< asp:ListItem > 出生年月 </ asp:ListItem >
            
</ asp:ListBox >
         
</ td >
         
< td style = " width: 27px " >
            
< asp:Button ID = " btnToRight "  runat = " server "  Text = " >> "
                    OnClick
= " btnToRight_Click "  />
            
< br  />
            
< asp:Button ID = " btnToLeft "  runat = " server "  Text = " << "
                        OnClick
= " btnToLeft_Click "  />
            
</ td >
         
< td style = " width: 3px " >
            
< asp:ListBox ID = " lbRight "  runat = " server "
                    SelectionMode
= " Multiple " ></ asp:ListBox ></ td >
      
</ tr >
   
</ tbody >
</ table >
< asp:Label ID = " lblMsg "  runat = " server " ></ asp:Label >

CS Code :
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;


   
public  partial  class  Test1 : System.Web.UI.Page
   
{
      
protected void Page_Load ( object sender , EventArgs e )
      
{

      }

      
protected void btnToRight_Click(object sender, EventArgs e)
      
{
         
if(lbLeft.SelectedItem != null)
         
{
            AddItemFromSourceListBox(lbLeft, lbRight);

            RemoveSelectedItem(lbLeft);

            lblMsg.Text
=""//注意:为什么要这一行?
            
            
foreach(ListItem item in lbRight.Items)
            
{
               
if(item.Selected)
                  lblMsg.Text 
+=item.Text;
            }

         }

      }


      
protected void btnToLeft_Click(object sender, EventArgs e)
      
{
         
if(lbRight.SelectedItem != null)
         
{            
            AddItemFromSourceListBox(lbRight, lbLeft);
            RemoveSelectedItem(lbRight);
         }

      }


      
private void RemoveSelectedItem(ListBox listControl)
      
{         
         
while(listControl.SelectedIndex != -1)
         
{
            listControl.Items.RemoveAt(listControl.SelectedIndex);
         }
         
      }


      
private void AddItemFromSourceListBox(ListBox sourceBox,ListBox targetBox)
      
{
         
foreach(ListItem item in sourceBox.Items)
         
{
            
if(item.Selected == true && !targetBox.Items.Contains(item))
            
{
               targetBox.Items.Add(item);
            }

         }

      }


}
 



你可能感兴趣的:(listbox)