在mvc3中回发后选择选项选择索引不显示?

时间:2013-12-16 08:29:16

标签: jquery html asp.net-mvc-3

我正在使用html下拉列表选择页码。选择然后加载项目。但下拉列表中当前选定的下拉列表未加载。

<span id="filterRecords">Number of Results Per Page
                   <%:Html.DropDownList("filterByPageNumber", new[]{

                     new SelectListItem { Text = "10", Value = "10" }, 
                     new SelectListItem { Text = "20", Value = "20" },
                     new SelectListItem { Text = "30", Value = "30" }, 
                     new SelectListItem { Text = "40", Value = "40" },
                     new SelectListItem { Text = "50", Value = "50" }
                    },
                     null,
                     new { onchange = "GetResultsPerPage()" })

                 %>.

function GetResultsPerPage() {

        var id = $("#filterByPageNumber option:selected").val();
        $("#recordsperpage").val(id);
          SubmitForm();

    }

eidt:

 <input type="hidden" name="recordsperpage" id="recordsperpage" value="10" />

请告诉我在submitform()之后没有显示所选索引。如果我在下拉列表中选择20或30或40总是显示10个(默认)值。请告诉我。

1 个答案:

答案 0 :(得分:0)

检查此链接

http://agilewarrior.wordpress.com/2012/12/13/how-to-simple-html-dropdownlistfor-mvc-net/

如您所见,您需要设置一个参数来设置所选索引。希望有所帮助,如果不让我知道,我将提供示例:)

关于此问题,stackoverflow上还有很多问题,请查看以下示例: ASP.NET MVC Html.DropDownList SelectedValue

你可以做这样的事情

<%:Html.DropDownList("filterByPageNumber", Model.ResultPerPage,
                     null,
                     new { onchange = "GetResultsPerPage()" })

您的模型将具有一个属性 - 一个SelectListItem列表,您在SelectListItem上设置(服务器端).SelectedItem = true,匹配您的记录页面的值

服务器侧

var resultsPerPage = List<SelectListItem>() { new SelectListItem { Text = "10", Value = "10" }, 
                     new SelectListItem { Text = "20", Value = "20" },
                     new SelectListItem { Text = "30", Value = "30" }, 
                     new SelectListItem { Text = "40", Value = "40" },
                     new SelectListItem { Text = "50", Value = "50" }}
resultsPerPage.Single(r => r.Value == recordsperpage).Selected = true; 
viewModel.ResultPerPage = resultsPerPage;

我相信你可以清理它,但这提供了一个简单的例子,可以帮助你。