2017-02-16 36 views
0

在數據集中選擇所有數據表中的項目,這是我的控制器:MVC - 生成報告 - 使用下拉列表中選擇

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

這是我index.cshtml代碼片段:

<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> 

這是sql語句 snippet在我的數據集表適配器中:

WHERE  (tblfile_leave.EMP_NAME = @username AND tblfile_leave.YEAR = @year) 

它獲取選擇選項中的任何值。然而,當我在下拉列表中選擇「全部」時,我沒有得到任何結果。我怎樣才能顯示在選擇語句連接到下拉選項「所有」的所有結果

回答

0

如果您將整數類型傳遞到您的控制器功能,它將生成javascript錯誤選擇全選選項,因爲它有值=所有這些都不是一個整數字符串。您可以在控制檯窗口中使用一些瀏覽器工具來查看這個。

一種解決方案是渲染選項標籤的選擇所有爲:

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

這將傳遞-1到您的控制器功能。你可以檢查像:

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

希望這會有所幫助。