zapamiętywanie danych formularza po odświeżeniu strony

0

Hej.
W Widoku głównym posiadam formularz który uzupełnia się przy pomocy okna modalnego. W oknie modalnym mam tabelę, w której wybieram danego pracownika, oraz zwracam go do głównego widoku za pomocą przycisku:

<button class="btn btn-default"data-dismiss="modal" onclick="pokaz('@item.IdPracownik','@item.Imie','@item.Nazwisko','@item.Email')">+</button>

Odbieram go funkcja pokaz

  function pokaz(IdPracownika, Imie, Nazwisko, Email)
    {
        $("#wybranyPracownikDiv").html(Imie + " " + Nazwisko);
        $("#IdPracownik").val(IdPracownika);
}

Następnie wrzucam to do inputa:

  <input type="hidden" name="IdPracownik" id="IdPracownik" value="" />

Problem polega na tym, że chciałbym mieć opcje tworzenia nowych pracowników w oknie modalnym w ktorym wybieram pracownika.
Jak dodam nowego pracownika, to strona automatycznie się przeładuje i wszystkie inne pola są puste. Co zrobić, aby pola uzupełnione już np. z innego okna modalnego lub wpisane ręcznie zostawały tam nawet po odświeżeniu strony? Próbowałem przy użyciu SessionStorage albo zmieniać funkcje Create w kontrolerze by nie odświeżała strony jednak nic to nie dało.

1

Nie wiadomo dokładnie jak wygląda twój kod dodawania pracownika. Ale jeśli jest to begin form to możesz zamienić na formularz ajaxowy, który nie odświeży Ci strony po dodaniu pracownika.
https://www.c-sharpcorner.com/UploadFile/0c1bb2/post-data-without-whole-postback/

0

Na pewno to wypróbuję.Pytanie, czy jest to da się wykonać np. zapisać wpisane pola formularza do sesji i wczytywać je po odświeżeniu? czy to nie jest czasem zbytnie kombinowanie?

0

Na pewno to wypróbuję.Pytanie, czy jest to da się wykonać np. zapisać wpisane pola formularza do sesji i wczytywać je po odświeżeniu? czy to nie jest czasem zbytnie kombinowanie?
@Edit: jak utworzę nowy obiekt to będę musiał odświeżyć listę po to, żeby mieć aktualnie utworzonego pracownika. Jak mogę tylko i wyłącznie tego diva odświeżyć?

<div class="col-10 col-sm-10 col-md-10 col-xl-10 " style="float:left; margin:0%; padding:0%;">
                    @Html.LabelFor(model => model.IdPacownika, "Pracownik", htmlAttributes: new { @class = "control-label col-md-6" })

                    @Html.DropDownList("IdPracownika", null, htmlAttributes: new { @class = "form-control" })
                    @Html.ValidationMessageFor(model => model.IdPracownika, "", new { @class = "text-danger" })

                </div>
2

Jak chcesz odświeżyć diva to tylko js'em . Np jak dodasz do bazy pracownika to zwróć sobie z np jsonem jego dane i wstaw jako kolejny element w divie. Możesz też zapisać do zmiennej sesyjnej, ale jak mówię, nie pokazałeś kodu całego a z treści wnioskuje że masz form główny i na modalnym do dodania pracownika nowego ?

0

Widok Tworzenia pracownika to typowy Create visuala czyli Begin Form. Lista pracownikow to zwykła tabelka która zawiera button opisany wyzej

<button class="btn btn-default"data-dismiss="modal" onclick="pokaz('@item.IdPracownik','@item.Imie','@item.Nazwisko','@item.Email')">+</button>

jeżeli chodzi o odświeżenia samego diva w głównym formularzu(DropDownList) to myślałem o zastosowaniu takiego czegoś:

 @Ajax.ActionLink("Przycisk", "Controller",  new AjaxOptions { UpdateTargetId = "divZlista" })

Czy takie coś się nada?

0
Eryk17 napisał(a):

Widok Tworzenia pracownika to typowy Create visuala czyli Begin Form. Lista pracownikow to zwykła tabelka która zawiera button opisany wyzej

<button class="btn btn-default"data-dismiss="modal" onclick="pokaz('@item.IdPracownik','@item.Imie','@item.Nazwisko','@item.Email')">+</button>

jeżeli chodzi o odświeżenia samego diva w głównym formularzu(DropDownList) to myślałem o zastosowaniu takiego czegoś:

 @Ajax.ActionLink("Przycisk", "Controller",  new AjaxOptions { UpdateTargetId = "divZlista" })

Czy takie coś się nada?

Być może tak ale nie wiem, ciężko po skrawkach kodu coś stwierdzić. Musisz próbować, jak nie tym sposobem to innym, na tym polega programowanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1