2012-03-12 8 views
0

リストボックスから選択したテキストと値を抽出する方法を教えてください。 は、ここで私は、リストボックスリストボックスから選択した値を抽出する

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

は、あなたがリストボックスにコントロールをバインドではなく、データテーブルを反復することができますも、最初に手に任意の値を選択しています。 –

答えて

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の複数のコピーが含まれます。

0

まず、ListBoxを正しくバインドしないでください。あなたはこのコードを使用してみてください。

lstListItem.DataSource = objDataSet.Tables[0]; 
lstListItem.DisplayMember = "SN_Notes"; 
lstListItem.ValueMember = "ID"; 
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); 
}