Announcement

Collapse
No announcement yet.

ListBox als Filter Für Dataviewgrid - Probleme!

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

  • ListBox als Filter Für Dataviewgrid - Probleme!

    Hallo,

    ich habe auf meiner Form bisher ein Dataviewgrid, drei Textfelder und eine Listbox.

    Den dataviewgrid fülle ich mit einer Kundentabelle.
    Code:
    gri.datasource  = dv
    Die 3 Textfelder habe ich mit
    Code:
      txtOrt.databindings.add("Text", dt, "M_ort")
    ...
    gebunden.

    Damit hatte ich immer in den 3 Feldern die Inhalte der aktuellen Zeile im Grid.

    Nun habe ich eine Listbox hinzugefügt, mit der ich einen Filter auf den Datentable setze und das Grid damit aktualisiere

    Code:
    dim dv as new Dataview(dt)
    dv.rowfilter = "M_Nr = " & NR  <- NR kommt hier aus der Listbox
    gri.datasource  = dv
    Nun werden meine gebundenen Textfelder nicht mehr aktualisiert

    Die Bindung auf die Sicht umzustellen hat nicht funktioniert, ein remove der Bindung irgendwie auch nicht.


    Nun noch eine Zweite Frage:
    In der Listbox stehen Filterkriterien für das Grid, die aus einer Tabelle kommen. Nun hätte ich gern zusätzlich so einen Eintrag "Alle Anzeigen" in der Box um den Filter zurückzusetzen. Kann mir jemand sagen, wie das geht?

    Danke und viele Grüße
    Karline

  • #2
    Hallo,

    zum ersten Problem: Mein Vorschlag sollte sein, die DataView (statt DataTable) für das DataBinding der TextBoxen zu verwenden; es wundert mich, dass das nicht funktioniert hat. Noch besser wäre es wahrscheinlich, eine BindingSource dazwischenzuschalten, weil dann Current genutzt werden kann.

    Zum zweiten Problem: Ein leerer String sollte helfen. Begründung: DataView.RowFilter verweist auf DataColumn.Expression. Dort steht in der SDK-Doku/MSDN:
    Sie können die Expression-Eigenschaft zurücksetzen, indem Sie ihr einen NULL-Wert oder eine leere Zeichenfolge zuordnen.
    Gruß Jürgen

    PS. Wie willst du eigentlich angesprochen werden? Seit kurzem unterschreibst du mit dem Nickname, ich habe aber auch schon Chxxx als Namen gelesen.

    Comment


    • #3
      Hallo Jürgen,

      Ich glaube, das mit dem Dataview hat nicht so funktioniert, da ich den erst im beim Ändern der Listboxselection erzeugt habe und das natürlich öfters aufgerufen wird und dann kam eine Meldung Mehrfachbindung oder so (hab es gerade nicht so genau im Kopf und bin unterwegs) Kann ich den Rowfilter beliebig oft setzen, muss ich ihn vorher löschen? Dann könnte ich den DV schon eher erzeugen und die Bindung machen.
      BindingSource habe ich noch nicht verwendet (fange gerade erst an auf .NET umzusteigen), werde aber auf jeden Fall mal nachlesen.

      Zum 2.
      Ich hätte gern in der Listbox den Eintrag <alle anziegen>, das naturlich nicht aus der Tabelle kommt. Hättest Du dafür eine Idee?

      Besten Dank
      Christina

      PS: Und klar ich steh dazu, ich bin die Christina, Anreden sind mir beide recht, werde mich angesprochen fühlen

      Comment

      Working...
      X