Auf meiner Seite habe ich die folgende Benutzersteuerung:ASP.NET Benutzersteuerung und jQuery Dialog
<div class="editFormDialog" style="display: none; font-size: 12px;">
<mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" />
</div>
Diese UC hat eine öffentliche Eigenschaft, die einen DataSet nimmt und aktualisiert einige Felder in der UC.
Also, wenn ich einen Knopf auf meiner Seite drücke, ruft es diese Eigenschaft auf dem UC auf, und der UC wird mit Daten vom DataSet aktualisiert.
So weit so gut. Das Problem tritt auf, wenn ich möchte, dass der UC ein jQuery UI Dialog ist.
Zunächst erstelle ich den Dialog:
$(document).ready(function() {
$('.editFormDialog').dialog({
autoOpen: false,
height: 700,
width: 780,
modal: true,
bgiframe: true,
title: 'Rediger',
open: function(type, data) {
$(this).parent().appendTo("form");
$(this).css('display', 'block');
}
});
});
Und ich wan't es auf einem Tastendruck zu öffnen (dies ist nicht eine ASP.NET-Taste, plain HTML):
$('#btnEdit').live('click', function() {
$('.editFormDialog').dialog('open');
});
Der Dialog öffnet sich, aber der UC enthält nicht die korrekten Daten. Wenn die Seite geladen wird, wird der UC mit den Standarddaten aktualisiert. Dann klickt der Benutzer auf eine Schaltfläche, und die Daten ändern sich, aber der UC wird nicht aktualisiert. Es enthält immer noch die Standarddaten. Das ist das Problem.
Haben Sie eine Idee warum?
Hilfe wird sehr geschätzt!
Ich klicke auf eine Schaltfläche, um die nächsten Daten zu erhalten. Ein Postback tritt auf. Die Eigenschaft in der UC wird wie folgt festgelegt: "editUC.EditData = ds;".Die Seite enthält die neuen Daten. Wenn ich jetzt auf eine andere Schaltfläche klicke, die den Dialog öffnet, enthält der UC immer noch die Standarddaten. Wie es die Änderungen in seiner Datenquelle nicht registriert hat. Aber wenn ich den UC außerhalb des Dialogs anzeigen, funktioniert es perfekt. –
Das hört sich komisch an: Könnten Sie etwas mehr von Ihrem Quellcode posten? –
Es ist alles in einem Update-Panel platziert. Kann es sein, wenn ich den Dialog erstelle, er ist "außerhalb des Update-Panels"? Vielleicht könnte eine andere Lösung darin bestehen, den Dialog jedes Mal zu erstellen, wenn er geöffnet wird, und ihn dann zu entfernen, wenn er geschlossen wird. Natürlich platzieren Sie die HTML-Elemente an der richtigen Stelle. Aber wie kann ich das tun? –