使用javascript从MVC中的下拉列表中选择All
本文关键字:下拉列表 选择 All 使用 MVC javascript | 更新日期: 2023-09-27 17:51:19
我刚接触MVC,c#,遇到一些问题。我的视图中有一个下拉列表,它是由我的数据库通过控制器填充的。
@Html.DropDownListFor(model => model.***ID, (SelectList)ViewBag.***, "Select All", new { onchange = "***Changed()", @class = "form-control", id = "***ID", name="list", style = "max-width:450px;display:inline;" })
我的页面要求我有一个选择所有按钮,如果点击它将选择下拉框内的所有值。目前,从我的javascript,我得到一个值
var ID = $('#***ID').val();
,并将其传递给报表的打印函数。报告使用了我在MSSql 2012中创建的存储过程。当单击select all按钮时,它应该将下拉菜单中的所有值传递给print函数。我该怎么做呢?任何帮助或教程的链接都会很有帮助!!谢谢你
如果我理解正确,你已经在你的下拉列表中有一个'Select All'(通常以'作为值)。我认为更好的方法是修改WS(以及您的存储过程)来检查传入的值-因此,如果传入的值在本例中为"
你在下拉菜单中有"全选"按钮,还想要一个单独的"全选"按钮——这有点令人困惑。
忽略'select all'按钮,您可以使用map:
获取所有选项的值。var ID = $('#***ID').val();
if (ID==="Select All") {
ID = $("#***ID>option").map(function() {
return $(this).attr("value");
})
.get()
.join();
}
注意:这也包括'Select All' -你可以从选择器中删除,例如>option:not(:first)
或在存储过程中的句柄。
您的按钮可以简单地选择下拉列表中的第一个选项
通过更改MS Sql Server中的存储过程,我实现了将所有ID发送给print函数的目标。实际上,有人建议我这样做,而不是全部选择。我把这个添加到where子句中(@ID为NULL或s.ID =@ID)
基本上它取所有我没有指定ID的记录。也就是说,不是从下拉菜单中选择所有值并传递,而是选择none并将所有信息放入一个报告文档中。
这里的解释简要地解释了我的意思http://www.w3schools.com/sql/sql_null_values.asp