Zapisanie wyboru optiona

0

Witam, w jaki sposób mogę zapamiętać wybór optiona po odświeżeniu ("submit" ) ? Chodzi mi o to że mam kilka selectów które sa filtrami i po każdym z nich jest wywoływany

 <select onchange="this.form.submit()" name="Sort" id="Sort" class="orderSort">
                            <option value="desc">Od najnowszego</option>
                            <option value="asc">Od Najstarszego</option>
                        </select>

lecz po odświeżeniu i nadaniu się odpowiedniego filtra ( stosuje zapytanie do sql ), select wraca na pierwszy option, co uniemożliwia mi nałożenie kilku selectów (są one filtrami na stronie), po sobie. Zaznaczam że nie chce żadnego buttona ani Ajaxa.

Czy jest to do osiągnięcia ?
Pozdrawiam

0

Możesz przechowywać wybraną opcję w ViewState albo w Session i po postback'u ją stamtąd zabierać i używać gdziekolwiek.

Jest tag C# więc wnioskuję, że chodzi o ASP.NET

0

kurde dalej nie wiem jak to zrobić. mam sobie tego selecta

 <select onChange="this.form.submit();" name="distributor" id="Distributor" class="orderCriteria">
                            <option value="">Wszyscy</option>
                            <option value="distribution">Dystrybucyjny</option>
                            <option value="inner">Testowy</option>
                        </select>

Podczas pobierania danych do modelu wrzucam sobie też parametr do sesji :

[AllowAnonymous]
        public ActionResult Order(string returnUrl)
        {
            return OrderHist(retrieveModelFromRequest(), returnUrl);
        }

private OrderModel retrieveModelFromRequest()
        {
            OrderModel model = new OrderModel();

            model.Action = Request.Params.Get("myAction");
            model.Distributor = Request.Form["distributor"];
          

            Session["distrib"] = model.Distributor;
           

            return model;
        }

Potem następuje

[HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult OrderHist(OrderModel model, string returnUrl)
        {
            if (!Request.IsAuthenticated || (Session["userPass"] == null))
            {
                return RedirectToAction("Start", "Home");
            }


            try
            {
                DoAction(model);
                PopulateView(model);
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Błąd podczas pobierania danych.", e.Message);
            }

            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

        public void DoAction(OrderModel model)
        {
            String myAction = model.Action;

            if (myAction != null)
            {
                ViewBag.currentAction = myAction;
              
            }
          
        }

        public void PopulateView(OrderModel model)
        {

            List<OrdersHistDto> orders = OrdersInfoService.RetrieveOrdersHist(model);
            if (orders != null && orders.Count > 0)
            {
              
                ViewBag.iformatOrders = orders;
            }
           
        }

I teraz co mam zrobić?
W metodzie PopulateView utworzyć metodę Load_page a w niej wrzucić do widoku

 "ViewBag.distrib = Session["distrib"].ToString() 

i w select dać value="ViewBag.distrib"

  ?

Będę wdzięczny za pomoc. Pozdrawiam

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