如何将逗号分隔的字符串绑定到c#中的列表框

时间:2014-05-15 22:17:49

标签: c# asp.net

如何将逗号分隔的字符串(例如:星期一,星期二)绑定到列表框控件,因为当列表框已经填充时,这些项目会被选中吗? 星期日 星期一 星期二 星期三 星期四 星期五 星期六

我从以下代码开始:

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
}

4 个答案:

答案 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;
}