Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Repeater Verwirrung

Letzter Beitrag 01-14-2008 19:40 von Chris Cluss. 4 Antworten.
Seite 1 von 1 (5 Treffer)
Beiträge sortieren: Zurück Weiter
  • 01-14-2008 12:21

    Repeater Verwirrung

    Hallo zusammen,

    irgendwie macht mich gerade folgendes stutzig:

    Ich habe einen Repeater auf der Seite mit einer ObjectDataSource. Soweit so gut.

    Jetzt möchte ich in Abhängigkeit der Anzahl der Items ein Panel ein- bzw. ausblenden. (0-Items = ausblenden, sonst einblenden).

    Repeater und ODS liegen innerhalb dieses Panels.

    Wenn ich z.B. in der PreRender folgende Zeile aufrufe:

    If rp.Items.Count = 0 then, bekomme ich immer 0 zurück, obwohl sich 2 Items in dem Repeater befinden.

    Testweise habe ich in der ItemDataBound Funktion mal einen Zeitstempel in ein Label schreiben lassen. Das hat auch funktioniert.

    Also mein nächster Versuch: panel standardmäßig auf visible=false und sobald ItemDataBound ausgeführt wird, visible=true.

    Das wiederum ging nicht. Warum??? Keinen Plan.

    Es geht nur, wenn ich im Codebehind vor der Abfrage explizit rp.DataBind() aufrufe. Aber mache ich dann nicht zwei Datenbank-Abfragen? Wenn ja, wäre das ja ziemlich unnötig...

    Hoffe, es kann jemand Licht ins Dunkle bringen...

     

    Grüße

     

     

    Tom

    • IP-Adresse ist Registriert
  • 01-14-2008 12:35 Antwort zu

    AW: Repeater Verwirrung

    Hi Tom,

     ich installiere gerade mein Rechner neu und deswegen finde ich nicht den richtigen Code.

    Ich meine, dass ein ObjectDatasource1.DataBind() im PageLoad Dein Problem lösen sollte.

    Chris

     

    • IP-Adresse ist Registriert
  • 01-14-2008 12:43 Antwort zu

    AW: AW: Repeater Verwirrung

    Ja. löst es im grunde auch… nur bindet er die Daten ja auch ohnedass ich die Funktion aufrufe…

    ich frag mich halt, ob die Daten dann zweimal und somit auch dieDatenbank zweimal angesprochen wird, wenn ich von Hand in der PageLoad dieFunktion DataBind aufrufe…

     

    Von: Chris Cluss[mailto:bounce-Chris_Cluss@glengamoi.com]
    Gesendet: Montag, 14. Januar 2008 12:40
    An: tb@sitepoint.de
    Betreff: [ADO.NET] AW: Repeater Verwirrung

     

    Hi Tom,

     ich installiere gerade mein Rechner neu und deswegen finde ich nichtden richtigen Code.

    Ich meine, dass ein ObjectDatasource1.DataBind() im PageLoad Dein Problemlösen sollte.

    Chris

     



    • IP-Adresse ist Registriert
  • 01-14-2008 13:00 Antwort zu

    AW: AW: Repeater Verwirrung

    Ich meine eigentlich, dass wenn Du das Bind der Datasource auslöst, dass dann kein neuer Aufruf gemacht wird.

    Mit einem Breakpoint im onDatabinding der Datasource sollte man das herausfinden können.


     

    • IP-Adresse ist Registriert
  • 01-14-2008 19:40 Antwort zu

    AW: AW: Repeater Verwirrung

    Hi Tom,

    Wenn ein Ereignis Repeater1.DataBinding eintritt, dann gibt es immer vorher eine DB-Abfrage.

    Wenn Du nur im Page_Load ein Databind machst, dann gibt es auch nur eine Abfrage. Ein Repeater der bereits gebunden ist wird nicht ein zweites mal gebunden, außer Du machst im Codebehind ein weiteres Databind

     Mehr dazu hier: http://nibblersrevenge.cluss.de/archive/2008/01/14/sqldatasource-und-anzahl-der-sql-server-abfragen.aspx

     

     

     

    • IP-Adresse ist Registriert
Seite 1 von 1 (5 Treffer)