Announcement

Collapse
No announcement yet.

in einem GridView mehrere Tabellen anzeigen

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

  • in einem GridView mehrere Tabellen anzeigen

    Hallo,

    ich sitze hier gerade an einem kleinen Problem, ich habe ein Gridview dass an eine SQL-DB gebunden ist, in dieses habe ich ein Template-Column eingefügt mit einer TextBox.

    Über die DataBindings möchte ich nun eine Funktion aufrufen die einen String in das Feld schreibt, dazu bräuchte ich aber einen Wert aus der aktuellen Row. Ich kann zwar die Funktion aufrufen ("Benutzerdefiniertes Binding") mir fehlt aber noch ein Wert (string) aus dem GridView. Wie kann man denn innerhalb des DataBindings einen Wert aus der selben row auswählen?

    Gruß
    Michael

  • #2
    Hallo Michael,

    ich bin noch nicht ganz so weit, aber nach Schnellsuche in der NET-Doku musst Du wohl in folgender Richtung vorgehen:

    In NET 2.0 müsstest Du mit <b>DataGridView.CurrentRow</b> direkt ans Ziel kommen.

    Von <b>DataBindings</b> aus sollte Dich Dein Weg so führen:

    DataBindings >> ControlBindingsCollection >> Binding-Klasse >> BindingManagerBase >> Current

    Das müsste die CurrentRow liefern.

    Ich hoffe, es hilft. Jürge

    Comment


    • #3
      Hi,

      ich muss dazu sagen ich benutze nur die Expressedition anbei der Screen-Shot wo ich stehe. was ich hier dann mache möchte ist eine Funktion aufzurufen die mir zu dem Kostentyp die Bezeichnung ausgibt. Hast ud vielleicht ne Idee .

      wenn ich bei benutzerdefiniert meine Funktion eintrage zieht das nur fehlt mir halt der kostentyp.

      Gruß
      Michae

      Comment


      • #4
        das haut hier leider nicht hin in dem databindings geht anscheinend nur databind() oder eval (laut msdn) aber da muss es doch ne methode geben um sich die werte aus den zeilen rauszulesen wie soll man denn in so nem grid den sonst werte aus mehreren tabellen anzeigen lassen. Ich hab eigentlich nicht vor Werte doppelt und dreifach in meine Datenbank zu schreiben.

        Gruß
        Michael

        P.S: ich hab auch nur die Express-Edition im Einsatz nur zur Inf

        Comment


        • #5
          Liefert denn "Current" die CurrentRow? (Row = Zeile)

          Auf jedes Feld der gefundenen Zeile kannst Du doch direkt zugreifen, z.B.:

          DataRow dr = ...CurrentRow();
          string FeldName = (string)dr["Name"];

          Und umgekehrt speichern:

          DataRow dr = ...CurrentRow();
          dr.BeginEdit();
          dr["Name"] = "Neuer Wert";
          dr.EndEdit();

          Wo hakt es denn noch? Jürge

          Comment


          • #6
            Hallo Jürgen,

            das Problem hat sich erledigt ich hab die Möglichkeit gefunden meine Werte per Joins anzuzeigen.

            Aber danke für die Hilfe

            Gruß
            Michae

            Comment


            • #7
              Hallo,

              &gt;..die einen String in das Feld schreibt, dazu bräuchte ich aber einen Wert aus der aktuellen Row.

              ein derartiger Zugriff sollte direkt in den Data Access Layer (DAL) gelegt werden, aber nicht in den Benutzeroberfläche (GridView). Wenn ein typisiertes DataSet angelegt wird, kann im <i>DataSet Designer</i> von Visual Studio 2005 eine neue Spalte visuell der DataTable hinzugefügt werden, deren Eigenschaft <b>Expression</b> für die Initialisierung des berechneten Feldwertes genutzt wird.

              Das GridView wird dann über eine <b>ObjectDataSource</b>-Komponente mit dem DAL verbunden, so dass im GridView die berechnete Spalte direkt genutzt werden kann.

              Umfangreiche Tutorials sind unter <i>http://www.asp.net/learn/dataaccess/default.aspx</i> zu finden

              Comment

              Working...
              X