现有一个repeater1里面嵌套了另一个repeater2怎么样repeater2绑定数据       说使用这程方法的repeater1_ItemDataBound  最好请不要说

解决方案 »

  1.   

    用for循环呗?
    for (int i = 0; i < Repeater1.Items.Count; i++)

          Repeater xxName= Repeater1.Items[i].FindControl("Repeater2") as Repeater;
         xxName.DataBind()
      

  2.   

    http://www.webshu.net/jiaocheng/programme/ASPNET/200804/12053.html
      

  3.   

    为什么不用repeater1_ItemDataBound?
      

  4.   

    http://hi.baidu.com/%D6%ED%D6%ED%D3%EA%CF%EF/blog/item/afd325d7a514703c07088bbd.html
      

  5.   

    绑定父级repeater,用for或者foreach遍历,通过findcontrol方法找到子Repeater,绑定
      

  6.   

    循环拿不到repeater2 
    我为了减少viewstatues
      

  7.   

    拿不到?repeater2为null?还是怎样?  你repeater1要有值才行哦!
      

  8.   

    嵌套DataList的,Repeater也类似
    http://blog.csdn.net/amandag/archive/2008/06/11/2537344.aspx
      

  9.   

    repeater1_ItemDataBound
    这个绝对可以。
    另外 楼主可以这样
    最外层的 repeater 绑定dataset
    然后 里面两个datatable 设置好外键关系。。
      

  10.   


    protected void RepeaterShopping_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Repeater RepeaterProduct = (Repeater)e.Item.FindControl("RepeaterProduct");
                    string SellMemberID = DataBinder.Eval(e.Item.DataItem, "SellMemberID").ToString();
                    var ProductLinq = (from ShoppingCartEntity in this.ShoppingDetailList
                                       where ShoppingCartEntity.SellMemberID == SellMemberID
                                       select new { ProductID = ShoppingCartEntity.ProductID, UserName = ShoppingCartEntity.UserName, ProductImg = ShoppingCartEntity.ProductImg, ProductName = ShoppingCartEntity.ProductName, SellMemberID = ShoppingCartEntity.SellMemberID, ID = ID }
                                       ).Distinct();
                    RepeaterProduct.DataSource = ProductLinq.ToList();
                    RepeaterProduct.DataBind();
                }
            }
      

  11.   

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e){
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
     int id =Convert.ToInt32( ((DataRowView)e.Item.DataItem).Row["id"].ToString());//获得对应ID
    // DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 
    //int id = Convert.ToInt32(rowv["id"]); //获取填充子类的id 
     DataList dl = (DataList)e.Item.FindControl("DataList1"); //找到DataList1控件
          if (id > 0 && dl != null) {
            string sql_p = "select * from TB_SmallClass where fid=" + id + " order by orderId";
                        sdr = obj.ExecuteReader(sql_p, null);
                        dl.DataSource = sdr;
                        dl.DataBind();
                        sdr.Close();
                    }
                }
            }
      

  12.   


    这种事就记住FindControl方法
      

  13.   

    3.主从显示<asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <tr class="c1">
                    <td><%#Eval("sort") %></td>
                    <td><a href="http://www.cnblogs.com/shtml/view_cls1/ViewCls_<%#Eval("id") %>.shtml" target="_blank"><%#Eval("cls_name") %></a> <a href="./admin_cls2_add.aspx?alt=1&id=<%#Eval("id") %>">[添加二级分类]</a></td>
                    <td><asp:Button ID="Button1" runat="server" Text="生成" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Shtml" /></td>
                    <td><asp:Button ID="Button2" runat="server" Text="编辑" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Edit" /></td>
                    <td><asp:Button ID="Button3" runat="server" Text="删除" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Delete" OnClientClick="return confirm('确定删除吗?')" /></td>
                </tr>
                    <asp:Repeater ID="Repeater2" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("TwoTable") %>'>
                    <!--DataSource='<%#Eval("TwoTable") %>'直接这样也是可以的-->
                    <ItemTemplate>
                        
                    <tr class="c2" onmouseover="className='tdover2'" onmouseout="className='tdout2'">
                        <td>&nbsp;&nbsp;<%#Eval("[\"sort\"]")%></td>
                        <td class="c2_1"><a href='http://www.cnblogs.com/shtml/view_cls2/ViewCls2_<%#Eval("[\"id\"]")%>_0.shtml' target="_blank">二级分类: <%#Eval("[\"cls_name\"]")%></a></td>
                        <td><a href="#">生成</a></td>
                        <td><a href="./admin_cls2_add.aspx?alt=2&id=<%#Eval("[\"id\"]")%>">编辑</a></td>
                        <td><asp:LinkButton ID="delete" CommandName='<%#Eval("[\"id\"]")%>' OnCommand="cls2Delete" OnClientClick="return confirm('确定删除吗?')" runat="server">删除</asp:LinkButton></td>
                    </tr>
                    </ItemTemplate>
                    </asp:Repeater>
            </ItemTemplate>
        </asp:Repeater>后台代码DataSet Ds = new DataSet();
                Ds.Tables.Add(Pn163.com_BLL.BLL_cls1.cls1DataSet().Tables[0].Copy());
                Ds.Tables.Add(Pn163.com_BLL.BLL_cls2.cls2DataSet().Tables[0].Copy());
                Ds.Relations.Add("TwoTable",Ds.Tables["cls1"].Columns["id"], Ds.Tables["cls2"].Columns["cls1_code"]);
                Telesa.DataBind.ToBind(Repeater1, Ds);
      

  14.   

    repeater1_ItemDataBound  里  FindControl
      

  15.   

    for循环,动态创建repeater,拼装HTML语句
      

  16.   

    在外面repeater绑定数据之后,寻找绑定了数据的行里的另一个repeater,
    再给里面repeater绑定数据源,不久可以了