前台是这样子的在外层Repeater里的FooterTemplate中写了个Repeater 
    <FooterTemplate>
                                    <div id="dvnull" runat="server" visible="<%#bool.Parse((Rplist.Items.Count==0).ToString()) %>">
                                        <div class="lxslb_zw">
                                            <div class="lxslb_zw_a">
                                                此城市暂无旅行社</div>
                                            <div class="lxslb_zw_b">
                                                您可以<a href="http://traveladmin.gooniu.com/Reg/TravelReg.aspx" target="_blank" class="f11">【注册旅行社】</a>或查看该城市<a
                                                    href="#" class="f11">景区景点</a></div>
                                            <div class="lxslb_zw_c">
                                                <a href="http://travel.gooniu.com" class="f02">&lt;&lt; 返回首页</a></div>
                                        </div>
                                        <div class="news_jingqu">
                                            <div class="bt">
                                                <a href="#" class="f06">热点景区 </a><span style="padding-left: 500px;"><a href="#" class="f10">
                                                    更多&gt;&gt;</a></span></div>
                                            <ul>
                                                <asp:Repeater ID="Rpjing" runat="server">
                                                    <ItemTemplate>
                                                        <li><a href="/Scenic/Scenicinfo_<%#Eval("pid") %>.html">
                                                            <img src="<%#Eval("t_surl") %>" alt="<%#Eval("pid") %>" /><%#Eval("pid") %></a></li>
                                                    </ItemTemplate>
                                                </asp:Repeater>
                                            </ul>
                                        </div>
                                    </div>
                                </FooterTemplate>在第一层的Repeater的OnItemDataBound事件中绑定
试了很多办法都得不到Rpjing这个控件没办法进行绑定  Repeater rep = null;
                    foreach (RepeaterItem item in Rplist.Controls)
                    {
                        if (item.ItemType == ListItemType.Footer)
                        {
                            rep = item.FindControl("Rpjing") as Repeater;
                            break;
                        }
                    }                    Repeater rep = Rplist.Controls[Rplist.Controls.Count - 1].FindControl("Rpjing") as Repeater;
                  Repeater rep = e.Item.FindControl("Rpjing") as Repeater;
 if (Rplist.Items.Count == 0)
                    {
                        rep.DataSource = new GooDAL.ClassDB().ReDataTableTop("T_TravelLineImg", "t_type=0", "id,pid,t_surl,t_type", "id desc", "4");
                        rep.DataBind();
                    }问下怎么能获取FooterTemplate下的repeater,实现DataSource ,DataBind额,。,,

解决方案 »

  1.   

    你嵌套为什么放在FooterTemplate里面?还不如放外面。
      

  2.   

    因为在ItemTemplate中是这个大repeater输出的东西,想的是有东西的时候输出的是ItemTemplate中的东西,没东西的时候就会出现这个代码页面告诉说没有东西。
      

  3.   

    没东西那么就是说外面那个Repeater的数据源是空的了,你嵌套的这个放在外面,在大Repeater有值的时候不去管它,没值的时候绑定这个Repeater就可以了,至于是否显示,不是还有visible这个属性吗?
      

  4.   

    如果都放到ItemTemplate中的话,大repeater没数据的时候那就都不输出了啊那个控制是空闲显示的div也显示不出来
      

  5.   

    大哥不是有个EmputyTemplate吗没有东西的时候就会显示它里面的东西
      

  6.   

    这个我看还需要自行扩展这个啊,这里边就能找到那个里边的repeater进行数据绑定么?
      

  7.   

    如果你的需求是repeater里面没东西显示点什么,用个label也可以实现。
    这个label的visible在repeater的数据源有值的时候为false,数据源为空的时候visible为true,
    显示什么内容自己写就是了。
      

  8.   

     protected void RepDictNameList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            //在Repeater的ItemDataBound时间中查询绑定行中是否有Repeater2控件,给Repeater2绑定3级导航
            Repeater repater2 = (Repeater)e.Item.FindControl("repeater2");
            DataSet ds = db.GetDataSet("select DictName,ID from FM_Article_Class where DictNo like convert(varchar,(select DictNo=substring(DictNo,1,8) from FM_Article_Class where ID = " + TID + "))+'[0-9][0-9][0-9][0-9]' and DictNo not in(select DictNo=substring(DictNo,1,8) from FM_Article_Class where ID = " + TID + ") order by DictNo asc");
            repater2.DataSource = ds;
            repater2.DataBind();
        }在第1个Repeater的这个事件中去找你所说的里面的那个Repeater然后绑定数据或者进行其他操作
      

  9.   

      我曾经自己写过一个论坛首页,论坛首页的版块我就是两个Repeater 嵌套使用的,都OK得
        可能你的方法不对吧!!!
      

  10.   

    这种方式查找在ItemTemplate下是没问题的。但是FooterTemplate就彻底不一样了饿。。原先的时候做过这个都是在ItemTemplate下的控件的嵌套输出,还做过3层嵌套的。都没问题。就是这个在FooterTemplate下的很麻烦了
      

  11.   

    在第一个Repeater控件的ItemDataBound事件中处理一下即可。
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
     {
           if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
               
            }
            if (e.Item.ItemType == ListItemType.Footer)
            {
                 DataRowView drv = (DataRowView)e.Item.DataItem;
                 Repeater rep = (Repeater)e.Item.FindControl("Repeater2");
                  rep.DataSource = new GooDAL.ClassDB().ReDataTableTop("T_TravelLineImg", "t_type=0", "id,pid,t_surl,t_type", "id desc", "4");
                            rep.DataBind();
                 rpt.DataBind();
            }
    }
      

  12.   

    这么写是获取不到在FooterTemplate节点下的内容的啊。。早试过了。。
      

  13.   

    没人在FooterTemplate这个节点下写过实际的东西么?