正在从列表框中提取选定的值

本文关键字:提取 列表 | 更新日期: 2023-09-27 18:27:23

如何从列表框中提取所选文本和值。以下是我如何填充列表框

           // 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
           }

提前感谢!!

正在从列表框中提取选定的值

// 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);
}

您的代码是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的多个副本。

首先,您没有正确绑定ListBox。你应该尝试使用这个代码:

lstListItem.DataSource = objDataSet.Tables[0];
lstListItem.DisplayMember = "SN_Notes";
lstListItem.ValueMember = "ID";