ListBox控件

1ListBox控件的概述

ListBox控件用于显示一组列表项,用户可以从中选择一项或多项。如果列表项的总数超出可以显示的项数,则ListBox控件会自动添加滚动条。图1ListBox控件。

1  ListBox控件

1ListBox控件常用的属性

ListBox控件常用的属性及说明如表1所示。

1                     ListBox控件常用的属性

属性名称

属性值

Items

获取列表控件项的集合

SelectionMode

获取或设置ListBox控件的选择格式

SelectedIndex

获取或设置列表控件中选定项的最低序号索引

SelectedItem

获取列表控件中索引最小的选中的项

SelectedValue

获取列表控件中选定项的值,或选择列表控件中包含指定值的项

Rows

获取或设置ListBox控件中显示的行数

DataSource

获取或设置对象,数据绑定控件从该对象中检索其数据项列表

ID

获取或设置分配给服务器控件的编程标识符

下面主要介绍一下ListBox控件的Items属性、DataSource属性和SelectionMode属性。

q    Items属性

Items属性主要是用来获取列表控件的集合,使用Items属性为ListBox控件添加列表项的方法有两种,下面分别来介绍一下:

l          通过属性窗口为ListBox控件添加列表项

首先,打开属性窗口,单击Items属性后面的  图标按钮,会弹出一个如图2所示的“ListItem集合编辑器”对话框。

     2  ListItem集合编辑器

其次,在该“ListItem集合编辑器”对话框中,用户可以通过单击【添加】按钮,为ListBox控件添加列表项,用户可以选中该列表项,在属性窗口中修改该列表项的属性值。当为ListBox控件添加完列表项后;还可以选中列表项,单击【↑】和【↓】按钮更改列表项的位置,单击【移除】按钮从列表项中,将该项删除。如图3所示。

           3  添加列表项

最后,单击【确定】按钮,返回到页面中,在ListBox控件中将会呈现已添加的列表项。

l          使用Items.Add方法为ListBox控件添加列表项

在后台代码中,可以编写如下代码,使用Items.Add方法为ListBox控件添加列表。

lbxSource.Items.Add("星期日");

            lbxSource.Items.Add("星期一");

            lbxSource.Items.Add("星期二");

            lbxSource.Items.Add("星期三");

            lbxSource.Items.Add("星期四");

            lbxSource.Items.Add("星期五");

            lbxSource.Items.Add("星期六");

q    SelectionMode属性是ListBox列表控件的选择模式,该属性的设置选项有以下两种。

l          单选(Single):用户只能在列表框中选中一项。

l          多选(MultiLine):用户可以在列表框中选中多项。

q    DataSource属性

通过使用DataSource属性可以从数组或集合中获取列表项并将其添加到控件中。当编程人员希望从数组或集合中填充控件时,可以使用此属性。例如,在后台代码中,编写如下代码,将数组绑定到ListBox控件中。其代码如下:

            ArrayList arrList = new ArrayList();

            arrList.Add("星期日");

            arrList.Add("星期一");

            arrList.Add("星期二");

            arrList.Add("星期三");

            arrList.Add("星期四");

            arrList.Add("星期五");

            arrList.Add("星期六");

            ListBox1.DataSource = arrList;

            ListBox1.DataBind();

注意:在使用ArrayList类数组之前,需要引用ArrayList类的命名空间,其引用代码为:using System.Collections;

2ListBox控件常用的方法

ListBox控件常用的方法是DataBind。当ListBox控件使用DataSource属性附加数据源时,使用DataBind方法将数据源绑定到ListBox控件上。

2ListBox控件选项的多选和单选操作

下面示例实现的主要功能是对ListBox控件中的列表项进行多选和单选操作。执行程序,示例运行结果如图4所示,在源列表框中选择部分项,单击【<】按钮后,将会把源列表框中选择的项移到目的列表框中,运行结果如图5所示。

4  ListBox控件(选择前)

5  ListBox控件(选择后)

程序实现的主要步骤:

新建一个网站,默认主页为Default.aspxDefault.aspx页面上添加两个ListBox控件和4Button按钮,属性设置及其用途如表2所示。

2                      Default.aspx页面中控件的属性设置及其用途

控件类型

控件名称

主要属性设置

用途

标准/ListBox控件

lbxDest

SelectionMode属性设置为“Multiple

目的列表框

lbxSource

SelectionMode属性设置为“Multiple

源列表框

标准/Button控件

Button1

Text属性设置为“<<

执行全选功能

Button2

Text属性设置为“>>

执行全删功能

Button3

Text属性设置为“<

执行单选功能

Button4

Text属性设置为“>

执行单删功能

如果需要将源列表框中的项全部移到目的列表框中,可以单击【<<】按钮。【<<】按钮的Click事件代码如下:

  protected void Button1_Click(object sender, EventArgs e)

    {

        //获取列表框的选项数

        int count = lbxSource.Items.Count;

        int index = 0;

        //循环从源列表框中转移到目的列表框中

        for (int i = 0; i < count; i++)

        {

            ListItem Item = lbxSource.Items[index];

            lbxSource.Items.Remove(Item);

            lbxDest.Items.Add(Item);

        }

        //获取下一个选项的索引值

        index++;

    }

如果需要将源列表框中的部分选项移到目的列表框中,可以单击【<】按钮。【<】按钮的Click事件代码如下:

  protected void Button3_Click(object sender, EventArgs e)

    {

        //获取列表框的选项数

        int count = lbxSource.Items.Count;

        int index = 0;

        //循环判断各个项的选中状态

        for (int i = 0; i < count; i++)

        {

            ListItem Item = lbxSource.Items[index];

            //如果选项为选中状态从源列表框中删除并添加到目的列表框中

            if (lbxSource.Items[index].Selected == true)

            {

                lbxSource.Items.Remove(Item);

                lbxDest.Items.Add(Item);

                //将当前选项索引值减1

                index--;

            }

            //获取下一个选项的索引值

            index++;

        }

    }

3ListBox控件选项的上移和下移操作

下面示例实现的主要功能是对ListBox控件中的列表项进行上移和下移操作。执行程序,示例运行结果如图6所示,在列表框中选中最后一项,单击【上移】按钮后,选中的项将会向上移动,运行结果如图7所示。

  

6  ListBox控件(上移前)

7  ListBox控件(上移后)

程序实现的主要步骤:

新建一个网站,默认主页为Default.aspxDefault.aspx页面上添加一个ListBox控件和4Button按钮,属性设置及其用途如表3所示。

3                   Default.aspx页面中控件的属性设置及其用途

控件类型

控件名称

主要属性设置

用途

标准/ListBox控件

lbxSource

SelectionMode属性设置为“Multiple

列表框

标准/Button控件

Button1

Text属性设置为“上移”

执行上移选中项功能

Button2

Text属性设置为“下移”

执行下移选中项功能

Button3

Text属性设置为“循环上移”

执行循环上移选中项功能

Button4

Text属性设置为“循环下移”

执行循环下移选中项功能

如果需要将列表框中选中的项上移,可以单击【上移】按钮。【上移】按钮的Click事件代码如下:

protected void Button1_Click(object sender, EventArgs e)

    {

        //若不是第一行则上移

        if (lbxSource.SelectedIndex > 0 && lbxSource.SelectedIndex <= lbxSource.Items.Count - 1)

        {

            //记录当前选项的值

            string name = lbxSource.SelectedItem.Text;

            string value = lbxSource.SelectedItem.Value;

            //获取当前选项的索引号

            int index = lbxSource.SelectedIndex;

            //交换当前选项和其前一项的索引号

            lbxSource.SelectedItem.Text = lbxSource.Items[index - 1].Text;

            lbxSource.SelectedItem.Value = lbxSource.Items[index - 1].Value;

            lbxSource.Items[index - 1].Text = name;

            lbxSource.Items[index - 1].Value = value;

            //设定上一项为当前选项

            lbxSource.SelectedIndex--;

        }

    }

如果需要将列表框中选中的项向下移动,可以单击【下移】按钮。【下移】按钮的Click事件代码如下:

 protected void Button2_Click(object sender, EventArgs e)

    {

        //若不是最后一行则下移

        if (lbxSource.SelectedIndex >= 0 && lbxSource.SelectedIndex < lbxSource.Items.Count - 1)

        {

            //保存当前选项的信息

            string name = lbxSource.SelectedItem.Text;

            string value = lbxSource.SelectedItem.Value;

            //获取当前选项的索引号

            int index = lbxSource.SelectedIndex;

            //交换当前选项与下一项的信息

            lbxSource.SelectedItem.Text = lbxSource.Items[index + 1].Text;

            lbxSource.SelectedItem.Value = lbxSource.Items[index + 1].Value;

            lbxSource.Items[index + 1].Text = name;

            lbxSource.Items[index + 1].Value = value;

            //设定下一项为当前选项

            lbxSource.SelectedIndex++;

        }

    }