Announcement

Collapse
No announcement yet.

Listbox mit MultiExtended und Valuemember

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Listbox mit MultiExtended und Valuemember

    Hallo

    Wenn eine Listbox an ein Dataset gebunden wird, sind doch folgende Eigenschaften zu belegen:
    lstBox.DataSource = mydataset;
    lstBox.DisplayMember = "Nachname";
    lstBox.ValueMember = "PersonalID";

    "PersonalID" ist der PrimaryKey in der Datenbanktabelle.

    In der Listbox sind jetzt alle Namen aufgelistet und könnne selektiert werden. Wird z.B. die 5., 8. und 10.Zeile ausgewählt, kann über die SelectedItems[4].Text, SelectedItem[7].Text und SelectedItem[9].Text Eigenschaft der Wert von DisplayMember (in diesem Fall also die Nachnamen) gezeigt werden.

    Wie kann man aber auf den Inhalt der ValueMember (also auf die "PersonalID") zugreifen?
    Bei SelectionMode = single wird über die Eigenschaft SelectedValue der Wert (also die PersonalID) ausgegeben. Aber bei MULTIEXTENDET???

    Vielen Dank für eure Hilfe

  • #2
    Hallo,

    ich glaube, das geht nur indirekt. Ich nehme doch an, dass die ListBox nicht an ein DataSet gebunden ist, sondern an eine DataTable? Dann kannst Du die betreffende DataRow holen und untersuchen:
    Code:
    for (int x = 0; x < listBox1.Items.Count; x++)
    {
       // Determine if the item is selected.
       if(listBox1.GetSelected(x)) {
          // get the current item as object, i.e. DataRow
          DataRow row = listBox1.Items[x] as DataRow;
          if (row != null) {
             int id = (int)row["PersonalID"];   //  oder direkt mit typ. Dataset
          }
       }
    }
    Nicht getestet, nur vermutet! Jürgen

    Comment


    • #3
      Hi Jürgen

      Vielen Dank für deinen Tip. Es funktioniert zwar nicht ganz so, aber so ähnlich.

      DataTable dt = new DataTable("tmpTable");
      dt = dataset.Tables["myTable"];
      for (int x = 0; x < listbox1.Items.Count; x++)
      {
      // Determine if the item is selected.
      if (listbox1.GetSelected(x))
      {
      DataRow row = dt.Rows[x];
      if (row != null)
      {
      Int32 id = row["PersonalID"]);
      }
      }
      }

      Gruß
      notstrom

      Comment

      Working...
      X