Frage

Bevor ich dies tun, ich dachte, ich würde fragen, ob es der beste Weg ist. Jedes „Vendor“ Objekt hat ein „Bucket“ Objekt. In meinem Repeater muss ich einige Eigenschaften von Vendor anzuzeigen und einige von Eimer, auch einige von Filesystem bevölkerten Bilder, die an den Lieferanten verbunden sind. Ich dachte, der beste Weg, dies zu tun, den Repeater mit dem Anbieter-Objekt bindet, dann auf ItemDataBound würde ich die Bilder bevölkert und die Eimer auf dem Anbieter basieren, die auf diese bestimmten Elemente gebunden ist [e.Item.ItemIndex].

Ist dies der beste Weg, um dies zu realisieren?

War es hilfreich?

Lösung

Wenn das Objekt Vendor kann nur ein einzigen Eimer Objekt halten kann es sinnvoll sein, sie zu binden alle in einem einzigen, Top-Level-Repeater. Sie können die Eimer durch einfache Datenbindung Zugriff auf alle auf der obersten Ebene ohne ItemDataBound überschrieben.

Da Sie höchstwahrscheinlich die „Verkäufer“ zu binden, haben Sie Zugriff auf ihre Mitglieder in einer databind, wenn Sie es auf diese Weise zu tun:

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>

Sie wollen während jeder Iteration der Bindung und benötigen detaillierte Zugang zu jedem Anbieter Objekt für die Entscheidungsfindung der ItemDataBound, wenn Sie müssen „Prozess etwas“ zu tun.

Wenn der Verkäufer Objekt mehr Schaufeln halten kann, dann ist die beste Art und Weise Zugang zu erhalten, dass durch ItemDataBound ist. Bei jeder Iteration des Verkäufers könnten Sie einen neuen, verschachtelten Repeater binden die Eimer Daten anzuzeigen, oder führen, was sich wiederholende / Aggregation Funktionalität, die Sie benötigen.

Je nachdem, wie Sie es in Ihrem Client verhalten, können Sie die Anbieter nur machen. Wenn der Benutzer auf dem Vendor klickt (oder was auch immer), könnten Sie einen AJAX-Aufruf an den Server durchführen, die die Bucket Daten abrufen würden und es in der Seite dynamisch machen. Möglicherweise möchten Sie diesen Ansatz versuchen, wenn es eine große Anzahl von Anbietern zusammen mit ihren Eimern werden gerendert sind. Dies würde die Leistung der Datenbank helfen, und Seite Renderzeit im Gegensatz sie alle auf der ASPX Server-Seite zu bauen. (Aber das müsste eine Menge von Daten sein, können Sie es für die Benutzerfreundlichkeit / Client Gründen tun sollte Verdienst Performance-Gewinne, bevor Sie versuchen.)

Andere Tipps

Das ist, wie ich in der Regel darüber gehen, binden an das Hauptobjekt und befassen sich mit den Angaben im ItemDataBound.

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