如何从列表框中提取所选文本和值。 这是我填充列表框的方式
// Populate ListBox
ListItem lstListItem = new ListItem();
int intRecordCount = objDataSet.Tables[0].Rows.Count;
for (int i = 0; i <= intRecordCount - 1; i++)
{
lstListItem.Text = objDataSet.Tables[0].Rows[i]["SN_Notes"];
lstListItem.Value = objDataSet.Tables[0].Rows[i]["ID"];
this.lstNote.Items.Add(lstListItem);
}
然后当我尝试获取所选值时,它返回null值。我正在使用Winform / VS2010
intRecordCount = lstNote.Items.Count;
for (int i = 0; i <= intRecordCount - 1; i++)
{
lstNote.SelectedIndex = i;
strID = lstNote.SelectedValue.ToString(); // Always return Null Value
}
提前谢谢!!
答案 0 :(得分:2)
// Populate ListBox
int intRecordCount = objDataSet.Tables[0].Rows.Count;
for (int i = 0; i <= intRecordCount - 1; i++)
{
ListItem lstListItem = new ListItem();
lstListItem.Text = objDataSet.Tables[0].Rows[i]["SN_Notes"];
lstListItem.Value = objDataSet.Tables[0].Rows[i]["ID"];
this.lstNote.Items.Add(lstListItem);
}
答案 1 :(得分:1)
您的代码是baaad:|
// Populate ListBox
int intRecordCount = objDataSet.Tables[0].Rows.Count;
for (int i = 0; i <= intRecordCount - 1; i++)
{
ListItem lstListItem = new ListItem();
lstListItem.Text = objDataSet.Tables[0].Rows[i]["SN_Notes"];
lstListItem.Value = objDataSet.Tables[0].Rows[i]["ID"];
this.lstNote.Items.Add(lstListItem);
}
您需要在每次迭代时创建ListItem
的新实例 - 否则,您的ListBox
将包含单个ListItem
的多个副本。
答案 2 :(得分:0)
首先,您没有正确绑定ListBox
。您应该尝试使用此代码:
lstListItem.DataSource = objDataSet.Tables[0];
lstListItem.DisplayMember = "SN_Notes";
lstListItem.ValueMember = "ID";