Frage

Ich möchte „komplexe“ Benutzersteuerelemente mit mehr als einem Steuerelement verwenden.Es ist dasselbe Steuerelement, das ich in der Liste wiederverwenden werde, und ich habe bereits ein PlaceHolder-Steuerelement dafür.

Ich kann die Steuerung mit hinzufügen LoadControl (Pfad zu .ascx) - Kein Problem.

Über meine benutzerdefinierten Eigenschaften kann ich auch auf die eingebetteten Beschriftungen zugreifen bzw. diese festlegen, sodass ich jedes Steuerelement perfekt initialisieren kann.

Aber beim Hinzufügen von LinkButtons bekomme ich Probleme.

Wenn ich auf die Schaltfläche klicke, erhalte ich ein „Senden“ der Seite, auf der die Steuerelemente dargestellt werden.aber das eigene Schaltflächenereignis des Steuerelements scheint nicht ausgelöst zu werden (oder scheint zumindest PageLoad auf der übergeordneten Seite zuerst ausgelöst zu werden?) – Ich kann nicht herausfinden, wohin mein Ereignis geht oder wo ich nach einem Namen/einer ID oder einem Parameter dafür suchen muss Taste.

Wie kommt es, oder was mache ich hier falsch?

Ich habe jetzt eine „gefälschte Schaltfläche“ erstellt, indem ich ein Label mit einem „hartcodierten A HREF“ mit einer ID in der URL verwendet habe, aber ich würde gerne erfahren, welches Ereignis ich abfangen muss und wo oder wie ich die Schaltfläche initiiere. weil ich in der Lage sein möchte, „Standard-ASP.NET“-Steuerelemente für diese Benutzersteuerelemente zu verwenden (hoffentlich ohne zu viel Patchwork-Codierung) ...

War es hilfreich?

Lösung

Der einzige Grund dafür, dass Ereignisse „verloren“ gehen, besteht darin, dass Ihre Steuerelemente nicht so neu erstellt werden, dass ASP.Net das Ereignis nach dem Postback dem Steuerelement zuordnen kann.Dies geschieht durch die Verwendung der ID-Eigenschaft.

Mit anderen Worten: Sie machen eines von drei Dingen falsch:

1) Sie weisen die IDs Ihrer Linkbuttons während der Erstellungsphase in Init nach dem Postback anders zu

2) Sie erstellen Ihre Linkbuttons dynamisch mithilfe von Code, tun dies jedoch nach der Init-Phase des Seitenlebenszyklus, sodass Ihre Steuerelemente nicht an ViewState teilnehmen.

3) Sie binden die Datenquelle des übergeordneten Steuerelements, das die Linkbuttons enthält, bei jedem Postback erneut.Verwenden if (!IsPostBack) um zu verhindern, dass es jedes Mal erneut gebunden wird.

Ohne Ihren Code zu sehen, kann ich leider nichts Genaueres sagen.

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