Na mojej stronie mam następujący kontrolę użytkownika:ASP.NET oraz jQuery dialogowe
<div class="editFormDialog" style="display: none; font-size: 12px;">
<mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" />
</div>
Ten UC ma własność publiczną, która przyjmuje DataSet i aktualizuje niektóre pola w UC.
Po naciśnięciu przycisku na mojej stronie wywoływana jest ta właściwość w UC, a UC jest aktualizowany danymi z DataSet.
Jak dotąd tak dobrze. Problem powstaje, gdy chcę, aby UC było dialogiem jQuery UI.
Najpierw tworzę okno:
$(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');
}
});
});
I wa go otworzyć na przycisk (nie jest to przycisk ASP.NET, zwykły HTML):
$('#btnEdit').live('click', function() {
$('.editFormDialog').dialog('open');
});
Otworzy się okno dialogowe, ale UC nie zawiera poprawnych danych. Po załadowaniu strony, UC jest aktualizowane z danymi domyślnymi. Następnie użytkownik klika przycisk, a dane zmieniają się, ale UC nie jest aktualizowany. Wciąż zawiera dane domyślne. To jest problem.
Czy masz pojęcie, dlaczego?
Pomoc zostanie doceniona!
Klikam przycisk, aby uzyskać następne dane. Pojawia się odświeżenie. Właściwość w UC jest ustawiona jako "editUC.EditData = ds;".Strona wyświetla nowe dane. Teraz po kliknięciu innego przycisku, który powoduje wyskakujące okno dialogowe, UC nadal zawiera dane domyślne. Jakby nie zarejestrował zmian w jego źródle danych. Ale jeśli wyświetlam UC poza oknem dialogowym, działa idealnie. –
To brzmi dziwnie: Czy mógłbyś dodać więcej kodu źródłowego? –
Wszystko jest umieszczone wewnątrz panelu aktualizacji. Czy może to być, gdy utworzę okno dialogowe, zostanie ono "przeniesione na zewnątrz" do panelu aktualizacji? Może innym rozwiązaniem może być utworzenie okna dialogowego za każdym razem, gdy zostanie otwarte, a następnie usunięcie go po zamknięciu? Oczywiście umieszczenie elementów HTML we właściwym miejscu. Ale jak mogę to zrobić? –