Announcement

Collapse
No announcement yet.

DBWebNavigator

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

  • DBWebNavigator

    Hallo!

    Ich versuche zur Zeit eine WebForm-Anwendung mit Delphi 8 zu erstellen und verwende die DBWebNavigator-Komponente. Da ich dem Einfügen eines neuen Datensatzes noch zusätzliche Felder versorgen wollte, frage ich in der Klick-Routine des DBWebNavigators den entsprechenden ButtonName ab. <BR> Merkwürdigerweise meldet der mir auch bei First, Prior, Next und Last als ButtonName "Insert". Hat aus mir sonst noch jemand das Problem oder kennt jemand eine Lösung/Abhilfe dafür.
    Gruß
    Micha

  • #2
    Hallo,

    an dieser Stelle verhält sich ein Web Form völlig anders als ein Windows Form, denn das Web Form arbeitet ohne Mithilfe immer Zustandslos. Im Source-Unterverzeichnis von Delphi 8 findet man die Datei <i>DBWebNavigator.cs</i>, und dort wird der Trick erkennbar, über den Borland selbst erkennt, welcher Button angeklickt wurde:
    <pre>
    <b>object</b> buttonObj = Page.Session[IDataLink.TableName + DBWebConst.sLastButtonSelected];
    <b>if</b>( buttonObj != <b>null</b> )
    {
    <b>string</b> sButton = buttonObj.ToString();
    ...
    }
    </pre>
    Immer dann, wenn die Seite als PostBack zurückkommt und das Button-Array <b>völlig neu</b> aufgebaut werden muss, wertet die DBWebNavigator-Komponente den zuletzt hinterlegten Eintrag in einer <b>Session</b>-Variable aus, die den Tabellen-Namen als Präfix nutzt

    Comment


    • #3
      Hallo!

      Erstmal möchte ich mich für die schnelle Antwort bedanken.<BR>
      <BR>
      Dann habe aufgrund deiner Info diesen LastButtonSelected mal im Auge behalten. Ich habe nach jedem Klick in der .../trace.axd nachgesehen, welchen Wert diese Session-Variable hat. Nach dem ersten Aufruf und einen Klick auf "Next" ist LastButtonSelected nicht in den Sitzungsvariablen aufgeführt. Eigentlich müßte sie aber den Wert "Next" haben. Auch nach einem Klick auf "Last" ist die Sitzungsvariable nicht vorhanden. Erst als ich auf "Refresh" klicke ist die Variable mit dem korrekten Wert ("Refresh") vorhanden. Klicke ich jetzt auf "First" hat die Sitzungsvariable den Wert "Insert". Ich verstehe das nicht. Wieso werden die Klicks für die Datensatz-Bewegungen nicht in der Variable gespeichert. Und wie kriegt die Variable den Wert "Insert" wo ich diese Schaltfläche nie geklickt habe.<BR>
      Wenn es hier keine Erklärung für gibt, werde ich wohl einfache Buttons nehmen und die Funktionen selbst schreiben müssen und auf die tolle Borland-Komponente verzichten.<BR>
      <BR>
      Gruß Mich

      Comment

      Working...
      X