我是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函数。我怎样才能做到这一点? 任何帮助或教程链接都会有所帮助!谢谢
答案 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