Repeater嵌套的两种方案

aspx中:

<asp:Repeater id="repLM" runat="server">
    <ItemTemplate>
        <table border="0" style="BORDER-COLLAPSE: collapse" width="98%" id="table8" class="list">
            <tr>
                <td colspan="2">
                    <div align="center">
                        <table border="0" style="BORDER-COLLAPSE: collapse" width="100%" id="table9">
                            <tr>
                                <td class="listTop"> <img src="<%=strStylePath%>dot2.gif"> <%# DataBinder.Eval(Container.DataItem,"ClassName") %></td>
                            </tr>
                            <tr>
                                <td>
                                    <table border="0" style="border-collapse: collapse" width="100%" id="table10">
                                        <asp:Repeater id="repWZ" runat="server">
                                            <ItemTemplate>
                                                <tr>
                                                    <td><img border="0" src="<%=strStylePath%>list.gif" width="15" height="6"><a href='Show.aspx?AtcID=<%# DataBinder.Eval(Container.DataItem,"AtcID") %>'><font color='<%# DataBinder.Eval(Container.DataItem,"TitleColor") %>'><%# DataBinder.Eval(Container.DataItem,"Title") %></font></a>
                                                    </td>
                                                </tr>
                                            </ItemTemplate>
                                        </asp:Repeater>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </div>
                </td>
            </tr>
            <tr>
                <td width="87%">
                </td>
                <td width="12%" class="more"><span lang="zh-cn">更多</span></td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>

//先邦定栏目
string strSQL1="select ClassID,ClassName from xClass where ParentID=0 and PageID="+strPageID;
SqlDataAdapter da1=new SqlDataAdapter(strSQL1,myConn);
da1.Fill(ds,"LM");
repLM.DataSource=ds.Tables["LM"].DefaultView;
repLM.DataBind();        
myConn.Close();

 
在外面的Repeater的ItemDataBound事件里写如下程序:
 
private void repLM_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
    
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
        Repeater rpColumnNews = (Repeater) e.Item.FindControl("repWZ"); 
        //找到分类Repeater关联的数据项 
        DataRowView rowv = (DataRowView)e.Item.DataItem; 
        //提取分类ID 
        string strClassID = Convert.ToString(rowv["ClassID"]); 
        //里面的Repeater
        string strSQL2="select xArticle.AtcID,xArticle.Title,xArticle.TitleColor from xArticle,xClass where ";
        strSQL2+=" (xArticle.ClassID=xClass.ClassID and xClass.ClassID="+strClassID+") or (xArticle.ClassID=xClass.ClassID and xClass.ParentID="+strClassID+")";
        SqlDataAdapter da2=new SqlDataAdapter(strSQL2,myConn);
        ds=new DataSet();
        da2.Fill(ds,"WZ");
        rpColumnNews.DataSource=ds.Tables["WZ"].DefaultView;
        rpColumnNews.DataBind();        
        myConn.Close();
    } 

}

posted @ 2011-01-10 17:38  快乐的langYa  阅读(252)  评论(0编辑  收藏  举报