ListBox控件用法

### ListBox控件用法详解:实现数据在两个ListBox间的多条移动 #### 一、概述 在.NET框架中,ListBox是一种常用的用户界面组件,用于显示一个项目列表供用户选择。ListBox支持多种选择模式,其中“Multiple”模式允许用户一次选择多个项目。本文将详细介绍如何通过两个ListBox控件实现数据的多条移动功能,并提供具体的前端页面代码和后端逻辑代码。 #### 二、ListBox控件简介 ListBox控件是ASP.NET中一种非常实用的控件,它可以用来显示一个项目列表,用户可以选择列表中的一个或多个项。ListBox具有多种属性可以自定义其外观和行为,例如`Height`、`Width`等。此外,ListBox还支持多种选择模式: - **Single**:单选模式。 - **Multiple**:多选模式。 在本文的例子中,我们关注的是“Multiple”选择模式的应用场景。 #### 三、实现数据多条移动的具体步骤 ##### 1. 页面布局设计 我们需要设计一个简单的页面布局,该布局包含两个ListBox控件和两个按钮,分别用于表示数据源和目标位置,以及执行数据移动操作。 ```html <table> <tr> <td> <asp:ListBox ID="ListBox1" runat="server" Height="200px" SelectionMode="Multiple" Width="300px" Rows="10000" ToolTip="ListBox1"> </asp:ListBox> </td> <td> <asp:Button ID="btnAddRoutes" runat="server" Text=">>" OnClick="btnAddRoutes_Click" /> <br /> <asp:Button ID="btnRemoveRoutes" runat="server" Text="<<" OnClick="btnRemoveRoutes_Click" /> </td> <td> <asp:ListBox ID="ListBox2" runat="server" Height="200px" SelectionMode="Multiple" Width="300px" Rows="10000" ToolTip="ListBox2"> </asp:ListBox> </td> </tr> </table> ``` ##### 2. 后台代码实现 接下来,我们需要编写后台代码来处理用户点击按钮时发生的事件,具体实现如下: ```csharp /// <summary> /// 将ListBox1中的选中项移动到ListBox2中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAddRoutes_Click(object sender, EventArgs e) { for (int i = ListBox1.Items.Count - 1; i >= 0; i--) { if (ListBox1.Items[i].Selected == true) { if (!ListBox2.Items.Contains(ListBox1.Items[i])) { ListBox2.Items.Add(ListBox1.Items[i]); } ListBox1.Items.RemoveAt(i); } } } /// <summary> /// 将ListBox2中的选中项移动回ListBox1中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnRemoveRoutes_Click(object sender, EventArgs e) { for (int i = ListBox2.Items.Count - 1; i >= 0; i--) { if (ListBox2.Items[i].Selected == true) { if (!ListBox1.Items.Contains(ListBox2.Items[i])) { ListBox1.Items.Add(ListBox2.Items[i]); } ListBox2.Items.RemoveAt(i); } } } ``` #### 四、代码解析 1. **页面布局**: - 使用了两个ListBox控件和两个按钮。 - ListBox控件设置了`SelectionMode="Multiple"`属性,以便用户可以同时选择多个项目。 2. **后台逻辑**: - `btnAddRoutes_Click`方法实现了从ListBox1向ListBox2的数据移动。 - 遍历ListBox1的所有项目。 - 检查每个项目是否被选中。 - 如果被选中且ListBox2中不存在,则将其添加到ListBox2中,并从ListBox1中移除。 - `btnRemoveRoutes_Click`方法实现了从ListBox2向ListBox1的数据移动。 - 遍历ListBox2的所有项目。 - 检查每个项目是否被选中。 - 如果被选中且ListBox1中不存在,则将其添加到ListBox1中,并从ListBox2中移除。 #### 五、注意事项 - 在实际开发中,还需要考虑数据同步和错误处理等问题。 - 应确保ListBox1和ListBox2中的项目唯一性,避免重复项。 - 对于更复杂的业务逻辑,可能还需要引入其他控件或编写额外的验证逻辑。 通过以上介绍,我们可以看到利用ListBox控件可以轻松地实现数据在两个ListBox之间的多条移动功能。这对于很多应用场景来说是非常有用的,比如权限管理、角色分配等。希望本文能够帮助大家更好地理解和掌握ListBox控件的使用技巧。













如果想移动多条,首先要设置ListBox控件的属性 SelectionMode="Multiple"
1.页面代码
<table>
<tr>
<td>
<asp:ListBox ID="ListBox1" runat="server" Height="200px" SelectionMode="Multiple" Width="300px" Rows="10000" ToolTip="ListBox1"></asp:ListBox>
</td>
<td>
<asp:Button ID="btnAddRoutes" runat="server" Text="添加>>" OnClick="btnAddRoutes_Click" /><br />
<asp:Button ID="btnRemoveRoutes" runat="server" Text="<<移除" OnClick="btnRemoveRoutes_Click" />
</td>
<td>
<asp:ListBox ID="ListBox2" runat="server" Height="200px" SelectionMode="Multiple" Width="300px" Rows="10000" ToolTip="ListBox2"></asp:ListBox>
</td>
</tr>
</table>
2.后台处理方法
/// <summary>
/// 从ListBox1表添加到ListBox2列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAddRoutes_Click(object sender, EventArgs e)
{
for (int i = ListBox1.Items.Count - 1; i > 0; i--)
{
if (ListBox1.Items[i].Selected == true)
{
if (ListBox2.Items.Contains(ListBox1.Items[i]) == false)

- vrgfr_20122012-09-27很全,很有用,收藏了
- nifacai2012-12-28本来一头雾水,有了它好多了!^_^

- 粉丝: 42
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- EV3100电梯专用变频器源代码
- FLAC3D编程:应力边界施加的函数形式与处理案例分析 针对立方体模型的重力与一侧应力边界影响的应力分布研究 特色:灵活调整应力函数,简单快捷的调节方法 专业定制:地应力反演与走滑断层分析中的边界条件
- 多模态属性级情感分析技术解析:电商平台与社交媒体中的应用
- 多智能体移动与编队控制:快速到达指定目标点与编队
- 超螺旋滑模观测器优化PLL,精准测角
- 基于DSP28335的单相全桥逆变器程序:闭环电流控制与SPWM调制技术详解 详解
- 海上5MW永磁风电直驱系统仿真及并网研究——基于1200V风电技术与矢量控制算法,混合储能及滑动平均滤波算法应用
- 基于虚拟同步发电机(VSG)的分布式能源并网仿真及并网逆变器控制——实现有功频率控制、无功电压控制、VSG控制以及电压电流双环PI控制的完美波形模拟(MATLAB 2021b)
- 煤矿瓦斯气驱监控系统的Python实现与应用
- 边坡工程中C30混凝土群桩计算模拟及位移监测分析
- 开关磁阻电机SRM仿真案例教程与Maxwell模型 v4.0
- 基于MATLAB的DTW算法实现特定人孤立词语音识别系统
- 基于S7-1200 PLC的停车场控制系统仿真:电气原理与图形化操作界面实践
- 基于MATLAB的GA优化算法在车间调度中的应用:多工件多工序与机器的优化配置 高级版
- 基于Matlab的IMU四元数姿态解算:多传感器数据融合与数学建模
- 基于Matlab 2018的新能源电机控制器FOC仿真模型及MTPAMTPV弱磁控制实现


