Announcement

Collapse
No announcement yet.

listBox zusätzlichen Wert übergeben

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

  • listBox zusätzlichen Wert übergeben

    Hi,

    ich habe zwei Listboxen. listbox1 wird aus einer Datenbank per Dataset befüllt.
    nun habe ich eine listbox2 die ich per per drag & drop aus listbox1 befülle.
    das funktioniert soweit. nun meine frage. wie kann ich z.b. den primärschlüssel oder einen anderen eindeutigen wert aus der datenbank mit auslesen, damit ich ihn mit an listbox2 übergeben kann?

    meine werte in listbox1 könnten ja im schlimmsten fall identisch sein, somit benötige ich eine eindeutige zuordnung.
    gibt es hier eine möglichkeit?

    mein Ansatz zeigt, wie ich die Daten in listBox1 unterbringe. Ich habe keine Idee, wo ich hier die spalte "nameid" aus der Datenbank mit übergeben könnte.

    [highlight=c#]
    foreach (DataRow dr in cl.Rows)
    {
    ListViewItem lstView = new ListViewItem();
    string lstItem = Convert.ToString(dr["name"]).Trim();
    if (dr["logicalname"] != DBNull.Value)
    {
    listBox1.Items.Add(lstItem);
    }
    }
    [/highlight]

  • #2
    Du hast doch wahrscheinlich die Datatable per Databinding an die Listbox gebunden? Somit würdest du beim Drag&Drop einfach die DataRow kopieren womit du alle Daten hättest.

    PS. Was hat der Code bezüglich ListView mit deiner Frage zu Listbox zutun?

    Comment


    • #3
      das listviewitem ist aus einem vorhergehenden versuch in vergessenheit geraten :-) hat hier natürlich nichts mehr zu suchen.


      ich habe die daten per dataset ausgelesen und trage derzeit das gewünschte feld des datasets in listbox1 ein.

      ich habe auch schon im internet über valuemember und displaymember gelesen. kann ich denn damit etwas übergeben?

      Comment


      • #4
        ich habe auch schon im internet über valuemember und displaymember gelesen. kann ich denn damit etwas übergeben?
        Nein.
        Wenn du ein komplexes Objekt(wie zum Beispiel eine Datatable mit ihren Datarows) an ein Control(wie zum Beispiel eine Listbox) bindest kannst du mit Displaymember bzw. Valuemember steuern welche Property angezeigt werden soll bzw. welche Property als identifizierendes Merkmal (id) benutz werden soll.

        Du sollte also nicht einfach den Anzeigewert als Text in die Listbox schreiben sondern deine gesamte Datatable an die Listbox hängen (Datasource Property der Listbox) und dann über Displaymember bestimmen welche Spalte den eigentlich angezeigt werden soll. Über die SelectedItem bzw. SelectedItems Property erhälst du danach dann das ausgewählte Objekt(in deinem Fall eine DataRow) nicht nur den angezeigten Text.

        Comment


        • #5
          da habe ich mir etwas eingebrockt :-)

          jetzt ist natürlich nicht mehr so einfach, den wert aus listbox1 in listbox2 einzutragen.

          hab jetzt ein databinding auf listbox1. nun muss ich der listbox2 noch irgendwie mitteilen, dass sie aus einer datarow befüllt wird.

          melde mich später wieder mit ergebnissen oder fragen ;-)

          danke für die hinweise

          lg

          Comment

          Working...
          X