本演示是让你知道如何多个值绑定至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 >
< 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控件进行数据绑定:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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< string, string> Site()
{
Dictionary< string, string> site = new Dictionary< string, string>();
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;
}
{
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< string, string> Site()
{
Dictionary< string, string> site = new Dictionary< string, string>();
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在此不作过多注释:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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;
}
}
{
string[] s = this.TextBox1.Text.Split( ' ; ');
foreach (ListItem li in this.ListBox1.Items)
{
li.Selected = ((IList)s).Contains(li.Text) ? true : false;
}
}