ASP .NET MVC i Jquery UI

ASP .NET MVC i Jquery UI
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Witam
Chcę wywołać partial view w dialogu z jQuery UI. Pojawia się dialog, ale na przykład przy akcji dodawania danych do bazy czasami wybierane jest złe id. Podobnie zdarza się również w przypadku usuwania. Klikam na usuń np. dla postu nr 1, a wyświetlają się dane postu 2, który po naciśnięciu ok jest usuwany.

Kod

Kopiuj
$('#open_dialog_post').dialog({
                title: "Usuń post",
                autoOpen: false,
                width: 800,
                resizable: false,
                modal: true
            });

$('.del_post').click(function () {
                $('#open_dialog_post').load("@Url.Action("Delete", "Post", new  { id = item.ID })", function () {
                    $('#open_dialog_post').dialog('open');
                });
                return false;
            });

Jak można poprawić ten kod, aby poprawnie "dobierał" id postu?

szogun1987
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Lublin/Gdynia
1

Moim zdaniem niepoprawny jest selektor '.del_post' ponieważ pobiera on wszystkie elementy o klasie del_post. Najrosądniejsze rozwiązanie jakie mi przychodzi do głowy to:
w atrybucie data (np. data-del-href) umieścić

Kopiuj
<a href="3" data-del-href="@Url.Action("Delete", "Post", new  { id = item.ID })">Usuń</a>

A potem możesz odwołać się do tego atrybutu w taki sposób:

Kopiuj
$('.del_post').click(function () {
                var clickedBtn = this;
                $('#open_dialog_post').load(clickedBtn.data('del-href'), function () {
                    $('#open_dialog_post').dialog('open');
                });
                return false;
            });

Na koniec dodam że kod jest pisany z głowy i nie jest testowany więc ma prawo zawierać błędy.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Teraz też mi się udało na coś takiego wpaść. Próbuje to zrobić za pomocą .closest(), ale nie mogę się dostać do przycisku, bo podaje zły kontekst.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Twój sposób działa. Dzięki za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.