vs2008 c#winform开发中关于得到数据绑定后的listbox的多个选中值的问题
我在设计中有一个listbox控件,并且允许用户实现多选情况,就是SelectionMode的属性值设置为了MultiSimple,我在窗口加载的时候从数据库一个表中查询...
我在设计中有一个listbox控件,并且允许用户实现多选情况,就是SelectionMode的属性值设置为了MultiSimple,我在窗口加载的时候从数据库一个表中查询出数据放在一个dataset中,并且把listbox的ValueMember和DisplayMember设置为不同的列,我现在想用一个for循环检测listbox里根据ds绑定项的选中情况,选中了就获取选中项的value值,我自己写的时候发现循环获取时每次输出的都只是第一个选中项的value值,后面的选中项的value值应该怎么获取?
for (int i = 0; i < ltb_RoomType.Items.Count; i++)
{
if (ltb_RoomType.GetSelected(i))
{
if (RoomTypeCount == 0)
{
//sql_str += "and (RoomType = '" + ltb_RoomType.get + "' ";
}
else
{
}
RoomTypeCount++; MessageBox.Show(ltb_RoomType.SelectedValue.ToString());
}
}
ltb_RoomType.Item[i]又没有Text或者Value的相关属性,只有ToString()的方法,我转过,但由于项是根据dataset动态绑定的,所以获取不到一个对的值! 展开
for (int i = 0; i < ltb_RoomType.Items.Count; i++)
{
if (ltb_RoomType.GetSelected(i))
{
if (RoomTypeCount == 0)
{
//sql_str += "and (RoomType = '" + ltb_RoomType.get + "' ";
}
else
{
}
RoomTypeCount++; MessageBox.Show(ltb_RoomType.SelectedValue.ToString());
}
}
ltb_RoomType.Item[i]又没有Text或者Value的相关属性,只有ToString()的方法,我转过,但由于项是根据dataset动态绑定的,所以获取不到一个对的值! 展开
1个回答
展开全部
因为listbox的item是一个object对象,所以你绑定了数据源以后,它本身不是值也不是显示的值,而是一个数据行,所以可以这样调用
DataRowView drv = listBox1.SelectedItem as DataRowView;
DataRow dr = drv.Row;
label1.Text = dr[listBox1.ValueMember].ToString();
多选的话,可以用foreach来遍历listBox1.SelectedItems
DataRowView drv = listBox1.SelectedItem as DataRowView;
DataRow dr = drv.Row;
label1.Text = dr[listBox1.ValueMember].ToString();
多选的话,可以用foreach来遍历listBox1.SelectedItems
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询