2016-03-29 9 views
0

私はドロップダウンリストとwebgridを持つページを持っています。 webgridにはpagenumbersがあります。ページ1を選択して2ページ目を選択すると、ドロップダウンで選択された アイテムが失われ、「ブランチを選択」に戻ります。webgridのページ間を移動するときにドロップダウンリストの選択項目を保持します

ページ間を移動するときにアイテムを選択したままにしておきたいと思います。それ、どうやったら出来るの? request.formを試しましたが、うまくいきませんでした。

  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); 
       } 

ここはhtmlコードです。

   @{ 
       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> 

答えて

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

追加jQueryと、この例では、あなたが得る代わりのポストを使用していると考えて – kblau