剑花 烟雨

   江南  好 风景旧曾谙 日出江花红胜火 春来江水绿如蓝 能不忆东北

理想中的建筑师应该是一个诗人、数学家、精通历史、精通心理学、熟悉音乐、了解医学、还要具备天文学和计算的基本知识。
                                                                                                                         ------------------公元前25年,罗马建筑学家Vitruvius
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

两个ListBox的互动(转)

Posted on 2008-03-22 11:15  落花人独立  阅读(1612)  评论(0编辑  收藏  举报
适合:
.Net 2.0
VS2005
效果:

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>
代码如下:
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);
            }
         }
      }
}
count hit
欢迎您到紫阁阳光坐客