使用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函数。我该怎么做呢?任何帮助或教程的链接都会很有帮助!!谢谢你

使用javascript从MVC中的下拉列表中选择All

如果我理解正确,你已经在你的下拉列表中有一个'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