<asp:Repeater ID="rpCity" runat="server" OnItemDataBound="rpCity_ItemDataBound">
 <ItemTemplate>
 <div class="box">
         <div class="area_01"><%#Eval("city_name")%>"><%#Eval("city_code")%></div>
    <div class="c">
       <ul>
       <asp:Repeater ID="rpTitle" runat="server">
       <ItemTemplate>
          <li><a href="http://这里如何取rpCity中的city_code" title="<%#Eval("HC_NewTitle")%>" target="_blank">
             <div class="txt">
             <%#Eval("HC_NewTitle")%>
             </div>
             </a>
          </li>
      </ItemTemplate>
          </asp:Repeater>
       </ul>
    </div>
 </div>
 </ItemTemplate>
      </asp:Repeater>
在子rpTitle中如何取父rpCity中的<%#Eval("city_code")%>的值

解决方案 »

  1.   

    <input id="hd1" type="hidden" runat="server" value='<%# Eval...%>' />repeater_databind...(( (e....as row).parent.parent as row).findcontrol as ...).value
      

  2.   

    rpCity的databind里面绑定rpTitle
    像这种潜套数据显示可以这么做
    当然了你也可以在rpCity的rowcommand里面
    上面的方法是初始化一起就出来了
    下面的方法是动态的显示
      

  3.   

    要把<%#Eval("city_code")%>值放在一個控件的Text或其他屬性里獲取,比如
    <div class="area_01"> <asp:Label Runat="server" ID="Label1" Text='<%#Eval("city_name")%>'> </asp:Label>
     </div> 
    在後臺你就可以通過findcontrol到那個Label1來得到它的Text了
      

  4.   

    目前想到的方法,请参考
    <asp:Repeater ID="Repeater1" runat="server"> 
         <ItemTemplate> 
            OrderID: <%# Eval("OrderID")%>
            CustomerID : 
             <asp:Label ID="Label1" runat="server" Text='<%#Eval("CustomerID")%>'></asp:Label> <br />
            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%# GetOrderDetails(Convert.ToInt32(Eval("OrderID"))) %>'> 
                <ItemTemplate>  
                    &nbsp;&nbsp;
                    子容器得到CustomerID : <%# ((Label)((RepeaterItem)((Repeater)(((RepeaterItem)Container).NamingContainer)).NamingContainer).FindControl("Label1")).Text %> 
                    UnitPrice: <%#Eval("UnitPrice")%> <br />
                </ItemTemplate> 
            </asp:Repeater> 
            <br />                 
         </ItemTemplate> 
    </asp:Repeater>private void BindRepeater()
    {
        SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
        SqlDataAdapter da = new SqlDataAdapter("select top 10 orderid, CustomerID, OrderDate from Orders", cn);
        DataSet ds = new DataSet();
        cn.Open();
        da.Fill(ds);
        cn.Close();
        Repeater1.DataSource = ds.Tables[0].DefaultView;
        Repeater1.DataBind();
    }protected DataTable GetOrderDetails(int orderID)
    {
        SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
        SqlDataAdapter da = new SqlDataAdapter("select ProductID, UnitPrice from [Order Details] where orderid = @orderid", cn);
        da.SelectCommand.Parameters.AddWithValue("@orderid", orderID);
        DataSet ds = new DataSet();
        cn.Open();
        da.Fill(ds);
        cn.Close();
        return ds.Tables[0];
    }protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindRepeater();
        }
    }
      

  5.   

    也可以简单一点..<asp:Repeater ID="Repeater1" runat="server"> 
         <ItemTemplate> 
            OrderID: <%# Eval("OrderID")%>
            CustomerID : 
             <asp:Label ID="Label1" runat="server" Text='<%#Eval("CustomerID")%>'></asp:Label> <br />
            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%# GetOrderDetails(Convert.ToInt32(Eval("OrderID"))) %>'> 
                <ItemTemplate>  
                    &nbsp;&nbsp;
                    子容器得到CustomerID : <%# ((Label)((RepeaterItem)(Container.NamingContainer.NamingContainer)).FindControl("Label1")).Text %> 
                    UnitPrice: <%#Eval("UnitPrice")%> <br />
                </ItemTemplate> 
            </asp:Repeater> 
            <br />                 
         </ItemTemplate> 
    </asp:Repeater>
      

  6.   

    http://www.lokcore.com/avrilxu/article.asp?id=5
    repeater使用方法详解