Repeater 嵌套repeater输出不规则列表

<asp:Repeater id="RP_Leader_Now" runat="server"    
  1.                     onitemcommand="RP_Leader_ItemCommand"  OnItemDataBound="RP_Leader_Now_ItemDataBound">   
  2.   
  3.                 <HeaderTemplate>   
  4.                 <table width="670"  align="center" cellpadding="0"  bgcolor="#88C8EC">   
  5.                 <tr>   
  6.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">1</th>   
  7.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">2</th>   
  8.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">3</th>   
  9.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">4</th>   
  10.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">5</th>   
  11.                 <th align="center" bgcolor="#F2FBFF" class="song12blue01">6</th>   
  12.                    
  13.                 </tr>   
  14.                 </HeaderTemplate>   
  15.   
  16.                 <ItemTemplate>   
  17.                 <tr>   
  18.                 <td align="center" bgcolor="#FFFFFF" class="song12blue03" rowspan="<%#GetRowsCount(Eval("CarList"))%>"> <%#Eval("ID")%></td>   
  19.                 <td align="center" bgcolor="#FFFFFF" class="song12blue03" rowspan="<%#GetRowsCount(Eval("CarList"))%>"> <%#Eval("ID")%></td>   
  20.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>   
  21.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>   
  22.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>   
  23.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>   
  24.                 </tr>   
  25.                         
  26.                      <asp:Repeater id="RP_Car_Now" runat="server">    
  27.                            
  28.                         <ItemTemplate>    
  29.                         <tr>   
  30.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>   
  31.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>   
  32.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>   
  33.                         <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>   
  34.                           
  35.                         </tr>    
  36.                         </ItemTemplate>    
  37.                            
  38.                     </asp:Repeater>    
  39.                       
  40.                    
  41.                    
  42.                 </ItemTemplate>   
  43.   
  44.                 <FooterTemplate>   
  45.                 </table>   
  46.                 </FooterTemplate>   
  47.   
  48.                 </asp:Repeater>  
<asp:Repeater id="RP_Leader_Now" runat="server" 
                    onitemcommand="RP_Leader_ItemCommand"  OnItemDataBound="RP_Leader_Now_ItemDataBound">

                <HeaderTemplate>
                <table width="670"  align="center" cellpadding="0"  bgcolor="#88C8EC">
                <tr>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">1</th>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">2</th>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">3</th>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">4</th>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">5</th>
                <th align="center" bgcolor="#F2FBFF" class="song12blue01">6</th>
                
                </tr>
                </HeaderTemplate>

                <ItemTemplate>
                <tr>
                <td align="center" bgcolor="#FFFFFF" class="song12blue03" rowspan="<%#GetRowsCount(Eval("CarList"))%>"> <%#Eval("ID")%></td>
                <td align="center" bgcolor="#FFFFFF" class="song12blue03" rowspan="<%#GetRowsCount(Eval("CarList"))%>"> <%#Eval("ID")%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#GetCarID(Eval("CarList"))%></td>
                </tr>
                     
                     <asp:Repeater id="RP_Car_Now" runat="server"> 
                        
                        <ItemTemplate> 
                        <tr>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>
                        <td align="center" bgcolor="#FFFFFF" class="song12blue03"> <%#Eval("CarID")%></td>
                       
                        </tr> 
                        </ItemTemplate> 
                        
                    </asp:Repeater> 
                   
                
                
                </ItemTemplate>

                <FooterTemplate>
                </table>
                </FooterTemplate>

                </asp:Repeater>



C#:

C#代码 复制代码 收藏代码
  1. //输出数据例子   
  2.  IList<MdlLeaderInfo> data   
  3.         {   
  4.             get  
  5.             {   
  6.                 IList<MdlLeaderInfo> _data = new List<MdlLeaderInfo>();   
  7.                 MdlLeaderInfo li1 = new MdlLeaderInfo();   
  8.                 li1.ID = "li1";   
  9.                 MdlLeaderInfo li2 = new MdlLeaderInfo();   
  10.                 li2.ID = "li2";   
  11.                 MdlLeaderInfo li3 = new MdlLeaderInfo();   
  12.                 li3.ID = "li3";   
  13.   
  14.                 MdlLeaderCar lc1 = new MdlLeaderCar();   
  15.                 lc1.CarID = "lc1";   
  16.                 MdlLeaderCar lc2 = new MdlLeaderCar();   
  17.                 lc2.CarID = "lc2";   
  18.                 MdlLeaderCar lc3 = new MdlLeaderCar();   
  19.                 lc3.CarID = "lc3";   
  20.   
  21.                 IList<MdlLeaderCar> lcList1 = new List<MdlLeaderCar>();   
  22.                 IList<MdlLeaderCar> lcList2 = new List<MdlLeaderCar>();   
  23.   
  24.                 lcList1.Add(lc1);   
  25.                 lcList2.Add(lc2);   
  26.                 lcList2.Add(lc3);   
  27.   
  28.                 li1.CarList = lcList1;   
  29.                 li2.CarList = lcList2;   
  30.   
  31.                 _data.Add(li1);   
  32.                 _data.Add(li2);   
  33.                 _data.Add(li3);   
  34.   
  35.                 return _data;   
  36.             }   
  37.         }   
  38.   
  39. //列表信息绑定   
  40.  private void LeaderBind_Now()   
  41.         {   this.RP_Leader_Now.DataSource = data;   
  42.             this.RP_Leader_Now.DataBind();   
  43.         }   
  44. //内层表信息绑定   
  45.  protected void RP_Leader_Now_ItemDataBound(object sender, RepeaterItemEventArgs e)   
  46.         {   
  47.             MdlLeaderInfo mdlLeaderInfo = e.Item.DataItem as MdlLeaderInfo;   
  48.             Repeater RP_Car = e.Item.FindControl("RP_Car_Now"as Repeater;   
  49.   
  50.             if (mdlLeaderInfo != null && RP_Car != null)   
  51.             {   
  52.                 if (mdlLeaderInfo.CarList == null || mdlLeaderInfo.CarList.Count == 0)   
  53.                     RP_Car.DataSource = mdlLeaderInfo.CarList;   
  54.                 else  
  55.                 {   
  56.                     mdlLeaderInfo.CarList.RemoveAt(0);   
  57.                     RP_Car.DataSource = mdlLeaderInfo.CarList;   
  58.                 }   
  59.                 RP_Car.DataBind();   
  60.             }   
  61.   
  62.   
  63.         }  
//输出数据例子
 IList<MdlLeaderInfo> data
        {
            get
            {
                IList<MdlLeaderInfo> _data = new List<MdlLeaderInfo>();
                MdlLeaderInfo li1 = new MdlLeaderInfo();
                li1.ID = "li1";
                MdlLeaderInfo li2 = new MdlLeaderInfo();
                li2.ID = "li2";
                MdlLeaderInfo li3 = new MdlLeaderInfo();
                li3.ID = "li3";

                MdlLeaderCar lc1 = new MdlLeaderCar();
                lc1.CarID = "lc1";
                MdlLeaderCar lc2 = new MdlLeaderCar();
                lc2.CarID = "lc2";
                MdlLeaderCar lc3 = new MdlLeaderCar();
                lc3.CarID = "lc3";

                IList<MdlLeaderCar> lcList1 = new List<MdlLeaderCar>();
                IList<MdlLeaderCar> lcList2 = new List<MdlLeaderCar>();

                lcList1.Add(lc1);
                lcList2.Add(lc2);
                lcList2.Add(lc3);

                li1.CarList = lcList1;
                li2.CarList = lcList2;

                _data.Add(li1);
                _data.Add(li2);
                _data.Add(li3);

                return _data;
            }
        }

//列表信息绑定
 private void LeaderBind_Now()
        {   this.RP_Leader_Now.DataSource = data;
            this.RP_Leader_Now.DataBind();
        }
//内层表信息绑定
 protected void RP_Leader_Now_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            MdlLeaderInfo mdlLeaderInfo = e.Item.DataItem as MdlLeaderInfo;
            Repeater RP_Car = e.Item.FindControl("RP_Car_Now") as Repeater;

            if (mdlLeaderInfo != null && RP_Car != null)
            {
                if (mdlLeaderInfo.CarList == null || mdlLeaderInfo.CarList.Count == 0)
                    RP_Car.DataSource = mdlLeaderInfo.CarList;
                else
                {
                    mdlLeaderInfo.CarList.RemoveAt(0);
                    RP_Car.DataSource = mdlLeaderInfo.CarList;
                }
                RP_Car.DataBind();
            }


        }


效果图:

 

posted @ 2011-09-22 22:31  星月磊子  阅读(181)  评论(0编辑  收藏  举报