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

zapamiętywanie danych formularza po odświeżeniu strony
E1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
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:

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

Odbieram go funkcja pokaz

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

Następnie wrzucam to do inputa:

Kopiuj
  <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.

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1596
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/

E1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
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?

E1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
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ć?

Kopiuj
<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>
SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1596
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 ?

E1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

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

Kopiuj
<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ś:

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

Czy takie coś się nada?

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1596
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

Kopiuj
<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ś:

Kopiuj
 @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.

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.