0

2 つのテーブルの左外部結合である単純なビューを使用して、各 FEE が該当する CATEGORY 名を取得し、それらをグループ化して表示します。ビューを実行してアイテムを反復処理すると、同じビューを使用していないようにアイテムが繰り返されます。

    @foreach (var category in Model.FeeScheduleRates())
{
    <tr><td colspan="2">@category.Category</td></tr>
    foreach (var item in Model.FeeScheduleRates())
    {                                  

    <tr> 
        <td>@item.Fee_Title - @item.Description</td>
        <td>@item.Amount</td>                                        
    </tr>
    }                                   
}

そのため、2 番目の項目セットの while ループにアプローチを変更しましたが、OUT OF MEMORY エラーが発生し、機能していないようです。

@foreach (var category in Model.FeeScheduleRates())
{   
    <tr><td colspan="2">@category.Category</td></tr>
    var cid = category.Cat_ID;                             
    while (category.Cat_ID == cid)
    {
         <tr> 
            <td>@category.Fee_Title - @category.Description</td>
            <td>@category.Amount</td>                                        
        </tr>       
    }                            
}

問題は、ビューを反復処理して項目をカテゴリにグループ化し、カテゴリを 1 回だけ表示する方法です>

私は製図板に戻って、これを使用しました:

                             @foreach (var category in Model.FeeScheduleRates().Distinct())
                            {
                                <tr><td colspan="2">@category.Category</td></tr>
                                foreach (var item in Model.FeeScheduleRates().Where(i=>i.Cat_ID == category.Cat_ID))
                                {                               
                                    <tr> 
                                        <td>@item.Fee_Title - @item.Description</td>
                                        <td>@item.Amount</td>                                        
                                    </tr>
                                }                                   
                            }

カテゴリが行として表示され、その下に項目が表示されるという点で、何らかの形で成功した経験があります。面白いことに、そのカテゴリに一致するレコードの数だけ同じ項目が繰り返されます。アイテムを適切に反復処理して、各 Fee_Title と Description を提供しない理由が今でも不思議です。例:

`無料サービス

Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU FREE への資金
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank- to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
Bank-to-Bank (B2B) Transfer - FCU への資金 FREE
貯蓄 およびマネーマーケット口座 普通預金からの 自動 振替
- $2 普通預金からの自動振替 - $2 普通預金からの自動振替 - $2 普通預金からの自動振替 - $2 普通預金からの自動振替 - $2 普通預金からの自動振替 - $2 普通預金からの 自動 振替 - $2`





そのため、カテゴリ free の下の DB には 12 個の項目があり、Savings and Money Market Account の下には 7 個の項目があります。カテゴリ内のレコードの数だけ、各カテゴリの最初の 1 つを繰り返すだけです。わかった!!!

4

1 に答える 1

1

ループではwhile (category.Cat_ID == cid)どちらcategory.Cat_IDcid変更されていないため、ループは終了しません。

編集

得られた結果を見ると、異なるカテゴリを繰り返し処理し、そのカテゴリに対して最初のアイテムを複数回表示しています。

すべての情報を取得し、場合はカテゴリ名を非表示にするために、明確でないリストを反復処理する必要がありますlastcategory = thiscategory

これを解決する良い方法は、見たいものの純粋な html を書き出してから、逆方向に作業してそれを構築することです。

于 2012-11-05T14:52:57.217 に答える