ListBox 绑定多个选项为选中

本演示是让你知道如何多个值绑定至ListBox显示为选中。ListBox在default情况之下,SelectionMode为Single,因此为了多选,而需要设置此属性为Multiple。在实现之前,可以先看到Insus.NET所实现最终效果,gif动画,无声音:

 

 

 .aspx:

 <asp:TextBox ID="TextBox1" runat="server" Width="300"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Binding" OnClick="Button1_Click" />
        <br />
        <br />
        <asp:ListBox ID="ListBox1" runat="server" Height="100" SelectionMode="Multiple" ></asp:ListBox>

 

.aspx.cs中,首先是为ListBox准备数据,然后对ListBox控件进行数据绑定:

View Code
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Data_Binding();
        }

    }

    private void Data_Binding()
    {
        this.ListBox1.DataSource = Site();
        this.ListBox1.DataTextField = "key";
        this.ListBox1.DataValueField = "value";
        this.ListBox1.DataBind();
    }

    private Dictionary<stringstring> Site()
    {
        Dictionary<stringstring> site = new Dictionary<stringstring>();
        site.Add("Insus.NET cnblogs""http://insus.cnblogs.com");
        site.Add("Microsoft""http://www.microsoft.com");
        site.Add("Google""http://www.google.com");
        site.Add("Yahoo""http://www.yahoo.com.cn");
        site.Add("Ifeng""http://www.ifeng.com");
        site.Add("sina""http://www.sina.com.cn");
        site.Add("163""http://www.163.com");
        site.Add("QQ""http://www.qq.com");
        return site;
    }

 

为了让TextBox的字符串以";"分割为多个值,引用了命名空间

using System.Collections;

 

接下来,是写button的click事件,代码相当简单,Insus.NET在此不作过多注释:

View Code
protected void Button1_Click(object sender, EventArgs e)
    {
        string[] s = this.TextBox1.Text.Split(';');
        
        foreach (ListItem li in this.ListBox1.Items)
        {                     
            li.Selected = ((IList)s).Contains(li.Text) ? true : false;           
        }
    }

 

 

 

posted @ 2012-04-26 22:21  Insus.NET  阅读(1757)  评论(0编辑  收藏  举报