2014-02-21 52 views
0

我正在使用ASP.NET MVC 4和C#。我通過從數據庫中檢索數據編寫代碼來顯示webgrid中的數據。有效。但是,如果有任何不良情況像數據庫中斷或某些事情,它將無法檢索數據,所以我希望webgrid返回空列表或顯示「沒有員工數據」,而不是拋出錯誤。我在webgrid中添加了if語句,這似乎不起作用。它仍然拋出錯誤:mvc 4 - 如何從webgrid返回空列表,而不是拋出錯誤

"A data source must be bound bfore this operation can be performed."

希望你能幫助解決像下面我的代碼:

EmployeeController:

var employees = (IEnumerable<Employees>)Session["Employees"] ?? EmployeeService.LoadEmployees(Guid.Empty, string.Empty, null, null, string.Empty, "Error"); 

index.chstml

@grid.GetHtml(
    htmlAttributes: new { id = "grid" }, 
    columns: grid.Columns(
    grid.Column(columnName: "ConvertedId", header: "Employee ID", format: (item) => string.IsNullOrEmpty(item.ConvertedId)?string.Empty:item.ConvertedId), 
     grid.Column(columnName: "Employee Code", header: "Vendor Name", format: (item) => string.IsNullOrEmpty(item.EmployeeCode)?string.Empty:item.EmployeeCode), 
     grid.Column(columnName: "Date", header: "Date", format: (item) => string.IsNullOrEmpty(item.Date.ToString())?string.Empty:item.Date.ToString()), 
     grid.Column(columnName: "Status", header: "Status", format: (item) => string.IsNullOrEmpty(item.Status)?string.Empty:item.Status), 

     )) 

回答

0

製作一個條件n在您的說明中Index查看Model的值,也可以創建一個表格,當沒有員工數據時就已經找到案例,參見下圖:

@model IEnumerable<Employees> 

<div> 
    @if (Model.Any()) 
    { 
     grid.GetHtml(
       // Your existing code here 
      ); 
    } 
    else 
    { 
     <div class="grid"> 
      <table> 
       <thead> 
        <tr> 
         <th>Employee ID</th> 
         <th>Vendor Name</th> 
         <th>Date</th> 
         <th>Status</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td colspan="4" align="center"> 
          No Employee Datafound 
         </td> 
        </tr> 
       </tbody> 
      </table>   
     </div> 
    } 
</div> 
相關問題