ListBox控件在C#之中,如果采用普通的绑定的方式的话,每行只能显示一个条目,但是如果需要多个信息在同一行里面显示的时候,就会产生一些问题,那么我们该如何解决呢?
绑定的方式: 自己显示:
二者对比:
第一种绑定的方式不用复赘,现在就将第二种的思路做一描述:
其实主要是通过ListBox自带的AddItem方法实现的,如下:
this.ListBox1.Items.Add(new ListItem(mm));整个代码片段如下:
public void show_data() { string strSql = string.Format(@"select MID,MNAME from [member]"); DbHelp dbh2 = new DbHelp(); SqlCommand Comm = new SqlCommand(strSql, dbh2.Db_Conn()); SqlDataReader dr = Comm.ExecuteReader(); while (dr.Read()) { string mm = dr[0].ToString() + "," + dr[1].ToString(); this.ListBox1.Items.Add(new ListItem(mm)); } }显示的效果如同 自己显示: 所示,主要是通过“循环新增”的方式,然后将多条数据合成一条数据,放入ListBox条目显示而实现的。
另外一个问题就是,可能我们需要用到ListBox里面的信息,但是又因为一条信息里面的多个字段存在于同一条ListBox 的Item之中,那么提取的时候就需要采用:Split方式,如此处,
string[] info_whole_temp_array = ListBox1.Split(',');
就会得到MID,MANE信息,此处的Split()为自带函数,有多个重载,选择分割的方式以char类型的','(英文逗号),来分割,另外,如果有如下:
string p = "15,s,40,50,60,abc,";这种形式的存在,那么分割之后,存入到数组之中,有:
info_whole_temp_array[0] ="15"
info_whole_temp_array[1]="s"
info_whole_temp_array[2]="40"
info_whole_temp_array[3]="50"
info_whole_temp_array[4]="60"
info_whole_temp_array[5] ="abc"
info_whole_temp_array[6]=""
另外其实对于DropDownList控件也是一样,它可以认为是ListBox的精简版,可以采用相同的方法,只不过这句:this.ListBox1.Items.Add(new ListItem(mm));之中的ListBox就需要改成DropDownList了:
this.DropDownList1.Items.Add(new ListItem(mm));