Frage

Dies ist ein allgemeiner wie funktioniert DataBind Arbeit Fragen ...

Ich habe eine einfache Seite mit einem Gridview, die (in dem aspx-Code) an ein Object gebunden ist.

Ich kann durch die Object genannt in der Select () Funktion, um zu sehen, dass es auf der Anfangslast genannt wird und auf jedem Post zurück. Ich habe einige Logik, die auf Post Rücken geschieht, dass die Gridview die Daten auswirken wird, und ich möchte GridView.DataBind () später in der Post zurückrufen, nachdem ich einige Änderungen vorgenommen haben.

Gibt es eine Möglichkeit, die automatische erneute Bindung zu verhindern, die zurück auf jeden Pfosten geschieht? Heißt das, ich nicht ein Object für dieses Steuerelement verwenden kann?

War es hilfreich?

Lösung

Sie sind richtig, dass die feinkörnige Kontrolle Sie suchen, sind nicht möglich und erfordert den Code hinter. ASP.NET die Datenquellenobjekte sind nichts anderes als ein Schmerz in den a **. Sie werden feststellen, dass, wie Sie sie verwenden Sie Situationen wie diese immer wieder auftauchende zu bekommen.

Einige der Probleme, die Sie zu finden sind:

  • nicht stark typisiert
  • Unbeugsam (wie Sie schon bemerkt)
  • Muddy bis die Präsentation Code

ich getroffen habe alle Datenzugriff in der Code-behind zu tun, und haben es nicht bereut.

Andere Tipps

Ich kämpfte mit dieser automatischen Bindung, wie gut und dachte, dass ich meine Lösung hier posten:

  1. entfernen Sie die „DataSourceID“ aus der ASPX-Seite, wenn es nicht gesetzt ist, gibt es keine automatische Bindung
  2. setzen die DataSourceID in der Codebehind nur bei Databinding ist erforderlich: myGridView.DataSourceID = "MyDataSource";
  3. rufen Sie nicht myGridView.DataBind () explizit, Datenbindung erfolgt automatisch bei PreRender

dauerte eine Weile, um dies herauszufinden, aber jetzt wverything funktioniert gut.

Kontext

Ich verwende die Object weil es handel all Paging und Sortierung des Gridview automatisch für mich. Ich bin eine Datenschicht mit Linq2SQL und verwenden seine Skip () und Take () -Methoden nur die Menge an Daten zu laden, benötigt eine Seite des Gridview zu füllen.

Mit der Select und Select der Object

Ja. Wenn Sie diese Art von Kontrolle über wollen, wenn die Datenbindung geschieht, müssen Sie es in der Code-behind tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top