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

时间:2015-06-01 14:48:11

标签: javascript c# jquery html asp.net-mvc

我是MVC新手,c#和ws面临一些问题。我的视图中有一个下拉列表,由我的数据库通过控制器填充。

@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中创建的存储过程。单击全选按钮时,它应将下拉列表中的所有值传递给print函数。我怎样才能做到这一点? 任何帮助或教程链接都会有所帮助!谢谢

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您已经选择了全部'在您的下拉列表中(通常以''作为值)。 我认为更好的方法是修改WS(您的存储过程)以检查传入的值 - 因此,如果传入的值是''''在这种情况下。

答案 1 :(得分:0)

您在下拉列表中有“全选”,并且还想要一个单独的“全选”按钮 - 这有点令人困惑。

忽略“全选”按钮,您可以使用map获取所有选项值:

var ID = $('#***ID').val();
if (ID==="Select All") {
    ID = $("#***ID>option").map(function() { 
             return $(this).attr("value"); 
         })
         .get()
         .join();
}

注意:这还包括“全选” - 您可以从选择器中删除,例如>option:not(:first)或存储过程中的句柄。

然后,您的按钮可以简单地选择下拉列表中的第一个选项。

答案 2 :(得分:0)

我实现了通过更改MS Sql Server中的存储过程将所有ID发送到打印功能的目标。实际上,我没有选择全部,而是建议我这样做。 我把它添加到我的where子句中 (@ID IS NULL或s.ID = @ID)

所以基本上它需要我没有指定ID的所有记录。 也就是说,我没有从下拉列表和传递中选择所有值,而是选择none,并将所有信息都放入1个报告文档中。

这里的解释简要说明了我的意思 http://www.w3schools.com/sql/sql_null_values.asp