2016-03-29 16 views
0

Ich habe eine Seite, die eine Dropdown-Liste und ein Webgitter hat. Das WebGrid hat Seitenzahlen. Wenn ich auf Seite 1 bin und ich Seite 2 auswähle, wird der im Drop-down-Menü ausgewählte Artikel gelöscht und zu "Select Branch" zurückgeleitet.Ausgewählte Element der Dropdownliste beibehalten, während Sie in einem Webgitter von Seite zu Seite wechseln

Ich möchte das Element beibehalten, wenn ich von Seite zu Seite gehe. Wie mache ich das? Ich habe versucht, die Anfrage.form aber nicht funktioniert

  public ActionResult Index() 
       {   
        var currentUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString(); 

        Edmviewmodel objedmtest = new Edmviewmodel(); 

        string ddlState_SelectedStateValue = Request.Form["ddlDropDownList"]; 

        if (currentUser != null) 
        {    
         try 
         { 
          objedmtest = _edmDataService.GetRequiredData("A05"); 

          ViewData["SelectList"] = HttpContext.Session["SelectList"] ?? new List<string>(); 

         } 
         catch (Exception ex) 
         { 

          //logger.Error(ex); 
         } 
        } 

        return View(objedmtest); 
       } 

Hier ist der HTML-Code.

   @{ 
       var grid = new WebGrid(source: Model.GetCatDataByLocation, 
       defaultSort: "CustomerName", 
       canSort: true, 
       rowsPerPage: 5 

       ); 
      } 


      <div> 

       <div> 
        <label for="ddlBranch">Branch:</label> 

        @Html.DropDownList("ddlDropDownList", Model.BranchesSelectList, "Select Branch", new { @class = "css-class" }) 

       </div> 
       <div> 
        @grid.GetHtml(
       tableStyle: "grid", 
       headerStyle: "head", 
       alternatingRowStyle: "alt", 
       columns: grid.Columns(
        grid.Column("Select", format: @<text><input name="CustomerName" type="checkbox" value="@item.CustomerName" @Html.Raw(((List<string>)ViewData["SelectList"]).Contains(@item.CustomerName) ? "checked" : "") /></text>), 
         grid.Column("CustomerName", "CustomerName"), 
         grid.Column("CustomerNumber", "CustomerNumber"), 
         grid.Column("Orderdate", "Orderdate", canSort: false), 
         grid.Column("OrderNumber", "OrderNumber"), 
         grid.Column("Routenumber", "Routenumber"), 
         grid.Column("Primaryrep", "Primaryrep"), 
         grid.Column("Isvalidated", "Isvalidated") 
         ) 
        ) 

       </div> 

       <div> 

       </div> 

      </div> 

Antwort

0
<script type="text/javascript"> 
     $(document).ready(function() { 
      //check for existance of query string 
      var urlg = window.location.href; //global url 
      var previousIndex = 0; 
      if (urlg.indexOf("ap") > 0) { 
       previousIndex = (urlg.substring(urlg.indexOf("ap=") + 3)); 
      } 


      $('select>option:eq(' + previousIndex + ')').prop('selected', true); //zero-based 

      $("a").click(function (event) { 

       $("td a").each(function() { 
        var old = $(this).attr('href'); 
        idx = $("select[name='ddlDropDownList'] option:selected").index(); 
        $(this).attr("href", old + "&ap=" + idx); 
       }); 
      }); 
     }); 
    </script> 
+0

add jquery und dieses Beispiel denkt, dass Sie ein, anstatt Post bekommen verwenden – kblau

Verwandte Themen