如何在c#中绑定一个逗号分隔的字符串到列表框
本文关键字:分隔 字符串 列表 一个 绑定 | 更新日期: 2023-09-27 18:03:32
如何将逗号分隔的字符串(如:monday,tuesday)绑定到列表框控件,因为当列表框已经填充时,这些项目正在被选中?周日周一周二周三周四星期五周六
我以以下代码开始:
string days = null;
List<string> lstdays = new List<string>();
//I get the values from a table such as:
foreach (DataRow dr in dt.Rows) {
//other items
days = dr(7).ToString();
}
if (days.Contains(",")) {
//days = Tuesday,Thursday
}
else
{
//days = Monday
lstbxDays.SelectedValue = days; //means there is a single day
}
您可以对字符串使用Split()方法:
string[] newDays=days.Split(',');
foreach (string d in newDays)
{
lstDays.Add(d); //add single day to days List
}
如果您还定义了listBox
,例如listbox1
,您可以说:
listbox1.DataSource=lstDays;
如果你将日期绑定到列表框,那么在用户选择日期的事件中(我不知道你是如何在程序中设置的,通过按钮,网格等),你可以设置:
listbox1.SelectedValue = day; //where day is the var user selects
如果你从DataTable
中获得数据,那么像
void BindDayList( ListBox lb , DataTable dt , string textColumnName , string valueColumnName )
{
lb.DataSource = dt ;
lb.DataTextField = textColumnName ;
lb.DataValueField = valueColumnName ;
lb.DataBind() ;
return ;
}
如果你有一个平坦的字符串,那么下面的东西可能会工作:
void BindDayList( ListBox lb , string listOfDays )
{
int i = 0 ;
lb.DataSource = days
.Split(',')
.Select( x => new ListItem( (++i).ToString() , x.Trim() ) )
;
lb.DataBind() ;
return ;
}
你可以这样做
lstbxDays.DataSource = days.Split(',');
考虑days是逗号分隔的字符串
希望这对你有帮助!
感谢大家提供的示例帮助-使它能够使用此代码选择多个天:
//days = tuesday,thursday
string[] s = days.Split(new char[] { ',' });
foreach (string lst in s)
{
lstbxDays.Items.FindByText(lst.ToString()).Selected = true;
}