mvc - 生成报告 - 使用下拉选择选择数据集中的所有可数据项

时间:2017-02-16 09:54:42

标签: sql select model-view-controller dataset

这是我的控制器:

System.Drawing.Bitmap

这是我的index.cshtml中的代码段:

public ActionResult GenerateReport(string Employeename, int year)
{
    EmployeeLeave ds = new EmployeeLeave();
    EmployeeLeaveTableAdapter da = new EmployeeLeaveTableAdapter();
    da.Fill(ds._EmployeeLeave, Employeename, year);
    ....
}

这是我的数据集表适配器中的 sql语句代码段:

<form action="/Report/GenerateReport/" method="post">
    <select id="Employeename" name="Employeename" class="form-control form-    control-lg">
                    <option value="" disabled selected>Select Name</option>
                    <option value="ALL">ALL</option>
                    @foreach (var item in ViewBag.userlist)
                    {
                        <option value="@item.username">@item.lastname</option>
                    }
                </select>

                <select id="year" name="year" class="form-control form-control-lg">
                    <option value="2016">2016</option>
                    <option value="2017">2017</option>
                </select>
                <button type="submit" value="Generate Report" class="btn btn-primary">Generate Report</button>
            </form>

它获取select选项中的任何值。但是,当我在下拉列表中选择“全部”时,我根本没有得到任何结果。如何在select语句中显示与下拉选项“ALL”相关的所有结果

1 个答案:

答案 0 :(得分:0)

如果要将整数类型传递给控制器​​函数,则在选择“全选”选项时会生成javascript错误,因为它具有value = All,这是一个字符串而非整数。您可以在控制台窗口中使用某些浏览器工具查看此内容。

一种解决方案是为选择全部呈现选项标记:

 <option value="-1">Select All</option>

这会将-1传递给您的控制器功能。您可以在哪里查看:

if (value.Equals(-1))
{
     //Your logic to select all records from database
}

希望这有帮助。