各位老大!请教Repeater嵌套Repeate的方法!
看了几个都看不懂啊!
最好有绑定的源代码

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=54F4C732-AAE2-4135-FB1B-7B4B613BAA33
      

  2.   

    http://www.cnblogs.com/dudu/archive/2004/10/01/48464.html
      

  3.   

    aspx:
    <asp:datalist id="DLboard" runat="server" Width="100%">
    <ItemTemplate>
    <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0">
    <TR>
    <TD bgColor="#f6f6f6" height="25">&nbsp;&nbsp;<img src="image/icon.gif">&nbsp;&nbsp;
    <asp:HyperLink id=LinkBoard runat="server" CssClass="LinkBoard" NavigateUrl='<%#"boardlist/default.aspx?DFboardID="+DataBinder.Eval(Container.DataItem,"DFboardID")+"&amp;DFboardZT="+subx((string)DataBinder.Eval(Container.DataItem,"DFboardZT"))%>' Text='<%#DataBinder.Eval(Container.DataItem,"DFboardZT") +" . . ."%>'>
    </asp:HyperLink></TD>
    </TR>
    <TR>
    <TD background="image/line.gif" height="1"></TD>
    </TR>
    <TR>
    <asp:Label id=LabDFboardID runat="server" text='<%#DataBinder.Eval(Container.DataItem,"DFboardID")%>' Visible="false"> <!--隐藏的LAB以获得BoardID--></asp:Label>
    <TD>
    <asp:DataList id="DLlist" runat="server">
    <ItemTemplate>
    <table>
    <tr>
    <td height="5">
    </td>
    </tr>
    </table>
    <asp:Label id="labreadpower" Visible=False runat="server" text='<%#DataBinder.Eval(Container.DataItem,"readpower")%>'></asp:Label>
    <asp:Label id="labDFfbr" Visible=False runat="server" text='<%#DataBinder.Eval(Container.DataItem,"DFuser")%>'></asp:Label>
    <asp:HyperLink id="LinkList" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"DFtitle")%>' NavigateUrl='<%#"filelist/default.aspx?DFlistID="+DataBinder.Eval(Container.DataItem,"DFlistID")%>' CssClass="NewLink">
    </asp:HyperLink>
    &nbsp;&nbsp;&nbsp;
    <asp:ImageButton id="ImageNew" runat="server" Enabled="False" Visible="False" ImageUrl="image/new.gif"
    CssClass="NewFileButton"></asp:ImageButton>
    &nbsp;&nbsp;&nbsp; [<%#DataBinder.Eval(Container.DataItem,"DFbm")%>] 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Label id=labDFdater runat="server" text='<%#DataBinder.Eval(Container.DataItem,"DFdater","{0:d}")%>'>
    </asp:Label>
    </ItemTemplate>
    </asp:DataList><BR>
    </TD>
    </TR>
    </TABLE>
    </ItemTemplate>
    </asp:datalist>
      

  4.   

    cs:
    void DLboardbind()
    {
    //DFboard_Select_index
    SqlCommand cmd=new SqlCommand();
    cmd.CommandText="[DFboard_Select_index]";
    cmd.CommandType=CommandType.StoredProcedure;
    cmd.Connection=conn;
    cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DFp", System.Data.SqlDbType.Int, 4, "DFp"));
    cmd.Parameters["@DFp"].Value=1;//表示首页的栏目
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=cmd;
    DataSet ds=new DataSet();
    da.Fill(ds);
    DLboard.DataSource=ds;
    DLboard.DataBind();
    }
    //当DLlist邦定数据时,即DataList嵌套
    private void DLboard_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    int BoardID=Convert.ToInt32(((Label)e.Item.FindControl("LabDFboardID")).Text.ToString());
    //
    SqlCommand cmd=new SqlCommand();
    cmd.CommandText="[DFlist_Select_index]";
    cmd.CommandType=CommandType.StoredProcedure;
    cmd.Connection=conn;
    cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DFboardID", System.Data.SqlDbType.Int, 4, "DFboardID"));
    cmd.Parameters["@DFboardID"].Value=(int)BoardID;
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=cmd;
    DataSet ds=new DataSet();
    da.Fill(ds);
                DataList DLDFlist=(DataList)e.Item.FindControl("DLlist");
    DLDFlist.DataSource=ds;
    DLDFlist.DataBind();
    }
    //当DataList创建时,注册被嵌套的邦定事件
    private void DLboard_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    DataList DLDFlist=(DataList)e.Item.FindControl("DLlist");
    if(DLDFlist!=null)
    {
    DLDFlist.ItemDataBound+=new DataListItemEventHandler(DLDFlist_ItemDataBound);
    }
    }
    //被嵌套的DataList的邦定事件
    private void DLDFlist_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    string DFdater=((Label)e.Item.FindControl("labDFdater")).Text.ToString();
    if(DFdater==System.DateTime.Now.ToShortDateString())
    {
    ImageButton ImageNew=(ImageButton)e.Item.FindControl("ImageNew");
    ImageNew.Visible=true;
    }
    //
    try
    {
    if(Session["readpowerid"].ToString()==null)
    {
    Session["readpowerid"]="0";
    Session["user"]="";
    }
    }
    catch
    {
    Session["readpowerid"]="0";
    Session["user"]="";
    }
    int readpowerid=Convert.ToInt32(((Label)e.Item.FindControl("labreadpower")).Text.ToString());
    string fbr=((Label)e.Item.FindControl("labDFfbr")).Text.ToString();
    HyperLink LinkList=(HyperLink)e.Item.FindControl("LinkList");
    if(Convert.ToInt32(Session["readpowerid"].ToString())<readpowerid && Session["user"].ToString()!=(string)fbr)
    {
    LinkList.Text="[加密文件]";
    LinkList.NavigateUrl="err.aspx?err=nosystem";
    }

    }
      

  5.   

    有点乱,不过要是理解了,就很容易了。
    关键是用e.Item.FindControl找到被嵌套的Datalist(你用的是Repeater,但原理是一样的)和被嵌套所需的ID。被嵌套的控件还可以有DataBound事件。
      

  6.   

    http://www.netbei.com/Article/aspx/aspx2/200505/3755.html