当您在webgrid中从一个页面移动到另一个页面时,保留所选项目的下拉列表

时间:2016-03-29 14:11:24

标签: asp.net-mvc-4

我有一个包含下拉列表和webgrid的页面。 webgrid有pagenumbers。如果我在第1页,我选择第2页的项目  在下拉列表中选择的内容将丢失并返回"选择分支"

我希望能够在我从一个页面移动到另一个页面时保持选择该项目。我怎么做?我尝试了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>

1 个答案:

答案 0 :(得分: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>