在Eval()值上使用Switch Case

时间:2013-09-02 18:05:54

标签: c# asp.net

我使用<%#Eval(“Status”)%>检索了一个值我想在ascx控件中内联切换这个案例而不使用后面的类或代码。交换机案例无法请求Enum,Interface或Struc。

<span class="label <%# GetStatus(Eval("Status").ToString()) %>">
  <%# Eval("Request_RequestStatus") %>
</span>
<%# 
protected String GetStatus(string stat) {

  var status = String.Empty;
   switch (stat)
   {
       case "New":
           status = "label-new";
           break;
       case "Approved":
           status = "label-approved";
           break;
       case "InProgress":
           status = "label-important";
           break;
       case "Overdue":
           status = "label-warning";
           break;
       case "Pending":
           status = "label-info";
           break;
       case "Completed":
           status = String.Empty;
           break;
       default:
           break;
   }   
    return status;
 }        
%>

错误错误CS1513:}预期

1 个答案:

答案 0 :(得分:1)

您的GetStatus()函数应该用

包装
<script runat=server>
  protected String GetStatus(){...}
</script>

有关代码块的更多详细信息,请参阅msdn

最好使用(Container.DataItem as YourEntity).Status而非Eval

之类的内容
相关问题