如何将逗号分隔的字符串(例如:星期一,星期二)绑定到列表框控件,因为当列表框已经填充时,这些项目会被选中吗? 星期日 星期一 星期二 星期三 星期四 星期五 星期六
我从以下代码开始:
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
}
答案 0 :(得分:3)
您可以对字符串使用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
答案 1 :(得分:1)
如果您从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 ;
}
答案 2 :(得分:0)
你可以这样做
lstbxDays.DataSource = days.Split(',');
考虑天是逗号分隔的字符串
希望这有帮助!
答案 3 :(得分:0)
感谢大家帮助的例子 - 让它使用此代码选择多天:
//days = tuesday,thursday
string[] s = days.Split(new char[] { ',' });
foreach (string lst in s)
{
lstbxDays.Items.FindByText(lst.ToString()).Selected = true;
}