我正在使用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个(默认)值。请告诉我。
答案 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;
我相信你可以清理它,但这提供了一个简单的例子,可以帮助你。