Verlust beim Klicken auf die Schaltfläche in ascx-Steuerelement, das in asp: Repeater gerendert wird

8

Ich habe eine asp:Repeater erstellt, die ich mit .ascx controls fülle:

%Vor%

Auf Seite habe ich:

%Vor%

Innerhalb Product.ascx.cs Ich habe:

%Vor%

Am Product.ascx Ich habe:

%Vor%

Problem ist, wenn ich auf die Bildschaltfläche klicke, bekomme ich einen Fehler:

%Vor%

Ich habe versucht, den ersten Code zu ändern:

%Vor%

Aber wenn ich auf den Bildknopf klicke, ist ImportantData leer.
Was habe ich hier falsch gemacht?

    
1110 18.03.2014, 11:25
quelle

2 Antworten

3

PageLoad passiert vor Ihrem Postback-Event, ändern Sie Ihr Event in PreRender:

%Vor%

Dies wird Ihren Repeater nach dem Postback binden und Ihren Postback-Wert beibehalten.

Bearbeiten:

Hier ist ein gutes Bild, das den gesamten WebForms-Seitenlebenszyklus zeigt :

Wie Sie sehen können

ProcessPostData event heißt AFTER Load event.

Sie möchten also Ihre Repeater binden, nachdem die PostData verarbeitet wurde.

Dies kann in PreRender

gemacht werden     
Phill 20.03.2014, 14:44
quelle
0

Das Problem ist nicht, dass Sie die Datenbindung an der falschen Stelle aufrufen, sondern höchstwahrscheinlich, dass das Benutzersteuerelement die Daten im Viewstate nicht korrekt speichert. Es sieht so aus, als ob Sie ein benutzerdefiniertes Steuerelement verwenden. Was Sie tun können, wenn dies der Fall ist, ist eine Eigenschaft in Ihrem Benutzersteuerelement zu erstellen, die aus dem Viewstate liest. Hier ist ein Beispiel:

%Vor%

Dadurch können Ihre Daten erhalten bleiben und die erforderlichen Daten beim Postback vorhanden sein.

und dies ist korrekt, so dass es nur auf die anfängliche Belastung geladen wird.

%Vor%     
Middletone 20.03.2014 20:26
quelle

Tags und Links