2014-10-28 36 views
0

我正在寻找一种方式来放置从字典项解压到同一行中的业务逻辑正确的顺序如何放置物品从字典中VM要有序列表

例如具有系统标识符typeone的项目,然后为每行输入2。

该字典有许多值的一个关键,我希望按照每个键的每个实例按相同的顺序列出值。我保证至少有一个值存在,但不能同时存在。

例如,一个行:

  <tr> 
       <td>@vendorItemKeys.Key.Vendor</td> 
       <td>@vendorItemKeys.Key.ItemCode</td> 
       @foreach (var vendorItemDetail in Model.UpcItems[topLevelKey] 
       { 
        @if (vendorItemDetail.SystemIdentifier == SystemIdentifier.typeOne) 
        { 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
        else if (vendorItemDetail.SystemIdentifier == SystemIdentifier.typeTwo) 
        { 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
        else 
        { 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
        } 
       } 
      </tr> 

但是这个代码不考虑一个事实,如果我先抢typeTwo的typeOne它会反向显示。有关如何解决这个问题的任何建议?

回答

1

也许switch可以帮助(apols是我的剃须刀是举步维艰):

  @foreach (var vendorItemDetail in Model.UpcItems[topLevelKey].OrderBy(f => SomeOrderFunction())) 
      { 
       switch(vendorItemDetail.SystemIdentifier) 
       { 
        case SystemIdentifier.typeOne: 
        case SystemIdentifier.typeTwo: 
        @{ 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
         break; 
        case default: 
        @{ 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
        } 
         break; 
       } 
      } 
+0

的.OrderBy功能的关键是解决这一个。谢谢! – Richard 2014-10-29 12:37:11

相关问题