代码如下:
 <asp:Repeater ID="classid" runat="server">
        <ItemTemplate>
        <div class="btitle"><%#Eval("cn_classname") %></div>
        <div>
            <asp:Repeater ID="nclassid" runat="server"  DataSource='<%#bind2(Eval("leseno_id")) %>' >
            <ItemTemplate>
             
           <a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>  &nbsp;&nbsp;
       
            </ItemTemplate>
            </asp:Repeater>
        </div>
        </ItemTemplate>
        </asp:Repeater>
 问题是classid,nclassid是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的classid的leseno_id的值呢

解决方案 »

  1.   

    在classid的绑定事件中对nclassid进行重新绑定。。
    参照:http://blog.csdn.net/baby97/archive/2009/06/06/4246900.aspx
      

  2.   


    绑定不是问题,,问题是我在nclassid里如何取的classid 里的leseno_id的值,,因为nclassid里有也leseno_id的值这就是nclassid里绑定了
    <asp:Repeater ID="nclassid" runat="server"  DataSource='<%#bind2(Eval("leseno_id")) %>' >
      

  3.   

     <asp:Label ID="Label1" runat="server" Text='<%#Eval("UserID")%>'></asp:Label> <br />
            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%# GetDetails(Convert.ToInt32(Eval("ID"))) %>'> 
                <ItemTemplate>  
                   <%# ((Label)((RepeaterItem)(Container.NamingContainer.NamingContainer)).FindControl("Label1")).Text %> 
                </ItemTemplate> 
            </asp:Repeater> 
      

  4.   

    能详细一点吗,,你这个不是Repeater中的Repeater的,,所以有点看不明,,我技术不到位,谅解一下
      

  5.   


      protected void rptTop_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Repeater rpColumnNews = (Repeater)e.Item.FindControl("rptSecentContent");
                    ClassTreeInfo rowv = (ClassTreeInfo)e.Item.DataItem;                string strId = Convert.ToString(rowv.Id);
                    rpColumnNews.DataSource = NewsInfo.GetNewsList(int.Parse(strId),10);
                    rpColumnNews.DataBind();
                }
                
            }在ItemDataBound事件里面取ID就行。。
      

  6.   

    先findcontrol找到nclassid,
    再找你要的控件
      

  7.   

    .aspx页面部分:   <asp:Repeater runat="server" ID="r_member" OnItemDataBound="r_member_ItemDataBound"><ItemTemplate>
        <li>
        <div>
         <a href="bbs/user_info.aspx?name=<%#Server.UrlEncode(Eval("UserName").ToString()) %>" target="_blank"><img alt="<%#Eval("UserName") %>" class="imgt" height="50" src="bbs/files/uploadfaces/<%#Eval("UserFace") %>" onerror="this.src='bbs/files/uploadfaces/userface/noface.gif';" width="60" /></a></div>
        <div>
         <dl>
          <dt><a href="bbs/user_info.aspx?name=<%#Server.UrlEncode(Eval("UserName").ToString()) %>" target="_blank"><%#Eval("UserName") %></a></dt>
          <asp:Repeater ID="r_member_list" runat="server"><ItemTemplate><dd><a href="bbs/topic.aspx?topicid=<%#DataBinder.Eval(Container.DataItem,"topicid") %>" class="a" target="_blank"><%#SubStr(Eval("title").ToString(),10) %></a></dd></ItemTemplate></asp:Repeater>
         </dl>
        </div>
        </li>
                </ItemTemplate></asp:Repeater>.aspx.cs部分        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
                Repeater r = (Repeater)e.Item.FindControl("r_member_list");
                DataRowView dr = (DataRowView)e.Item.DataItem;
                string strSql = "Select Top 2 topicid,title From dv_topic Where PostUserID='" + dr["UserID"] + "' Order by DateAndTime Desc";
                r.DataSource = bc.GetDataSet(strSql, "tbb");
                r.DataBind();
            }
      

  8.   

    大家都没理解我的意思,,都说绑定不是问题问题是classid,nclassid是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的 classid的leseno_id的值呢
      

  9.   

    我没怎么认真看你题目,因为你没有表达清楚。
    我估计是你想怎么把所有数据全部绑定(外层Repeater)中,而(内层Repeater)数据也要绑定到,而且
    一一对应,是吧?这样做:
          Class:
               classId;
               className;
               ...
               List<Stu> lstStu;     Stu:
             stuId;
             stuName;
             ...List<Class> lstClass = 数据库中得到/或者模拟一个;repInfo.DataSource = lstClass;
    repInfo.DataBind();
      

  10.   


    ASPX.CS代码public int ReturnID(int id)
    {
        return {这里接收返回的ID};
        //可以通过classid找nclassid  
        //sql:selct nclassid from table where classid = @classid
    }ASPX页面代码: <a href='product.aspx?nclassid=<%# ReturnID(int.Parse(Eval("leseno_id").ToString()))%>'>
      

  11.   

     <asp:Repeater ID="classid" runat="server">
            <ItemTemplate>
            <div class="btitle"><%#Eval("cn_classname") %></div>
            <div>
                <asp:Repeater ID="nclassid" runat="server"  DataSource='<%#bind2(Eval("leseno_id")) %>' >
                <ItemTemplate>
                 
               <a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>  &nbsp;&nbsp;
           
                </ItemTemplate>
                </asp:Repeater>
            </div>
            </ItemTemplate>
            </asp:Repeater>
     问题是classid(repeater的ID叫classid),nclassid(repeater的ID叫nclassid)是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的 classid的leseno_id的值呢
      

  12.   


    下回可别这么问,很难理解。你可以这样问,有两个repeater, 绑定的是同一张表 是嵌套关系 id 是它们之间的关联我想在里层的repeater 里获取外层 repeater 的一个指定字段-----------------------------------------------------------------------
     答案是<%#((Container.Parent.NamingContainer as RepeaterItem?? new RepeaterItem(0,ListItemType.Item)).DataItem as DataRowView)["leseno_id"] %>as DataRowView 这里 是推测你绑定的是 DataTable如果不是 要换成对应的类型
      

  13.   

    <%#((Container.Parent.NamingContainer as RepeaterItem).DataItem as DataRowView)["leseno_id"] %>你这样写 也行,但要确保类型转换时不会出现异常
      

  14.   

    纠结这种东西很浪费时间。如果你把内部的部分作为一个ascx独立出来,有它自己的属性与外界通讯,那么你就可以单独开发两个程序,而丝毫不会感觉到在花时间纠结这类东西。不一定先开发好内层,也不一定先开发好外层,两层按接口要求而分头开发即可。不会按组件来分层开发复杂系统,按接口来设计软件,是程序员基本的知识中的一大缺憾。
      

  15.   

    其实问题我早就换了个写法解决,,只是我一直想知道这个答案,,做技术,遇到问题就要想方法去解决,,只有没方法时才去换个角度换个方法去解决,其实这个问题我记的cnblogs中的“天轰穿”有说过,,而己很简单的,,呵呵,,感觉他的技术也是一样,,老是说控件,,
      

  16.   

    很简单啊 
     <asp:Repeater ID="classid" runat="server">
            <ItemTemplate>
            <div class="btitle"><%#Eval("cn_classname") %></div>
            <div>
                <asp:Repeater ID="nclassid" runat="server"  DataSource='<%#GetSource(Convert.ToInt32(Eval("leseno_id"))) %>' >
                <ItemTemplate>
                 
               <a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>  &nbsp;&nbsp;
           
                </ItemTemplate>
                </asp:Repeater>
            </div>
            </ItemTemplate>
            </asp:Repeater>
     在服务端写一个调回数据的方法
      

  17.   

    你是不是在做菜单啊! Repeater 嵌套。
      

  18.   

    方法完全正确,只不过要加上PAGE_load函数的绑定主REPEATER,我试了的,完全成功,不骗大家,以人格担保
      

  19.   

    Repeater 里面有个ItemDataBound事件,看看吧。