把 两个表的数据 都读出来,建立两个表的关系

 
把两个表的数据都读出来,建立两个表的关系   
  ds.Relation.Add();   
    
  然后在父Repeater的ItemDataBind事件中找到子Repeater   
  在根据关系找到子Repeater对应的数据源,绑定上ok。   
    
  页面上:   
  <asp:Repeater   id="Repeater1"   runat="server">   
  <HeaderTemplate>   
  <table   width="500">   
  <tr   bgcolor=blue>   
  <td>用户留言显示</td>   
  </tr>   
  </HeaderTemplate>   
  <FooterTemplate>   
  </table>   
  </FooterTemplate>   
  <ItemTemplate>   
  <tr   bgcolor=aaaaaa>   
  <td>用户名:<%#DataBinder.Eval(Container.DataItem,"username")%></td>   
  </tr>   
  <tr>   
  <td>用户留言的显示</td>   
  </tr>   
  <tr>   
  <td><asp:Repeater   id="Repeater2"   runat="server">   
  <ItemTemplate>   
  留言信息<%#DataBinder.Eval(Container.DataItem,"content")%><br>   
  </ItemTemplate>   
  </asp:Repeater></td>   
  </tr>   
  </ItemTemplate>   
  </asp:Repeater>   
    
  cs代码:   
  using   System;   
  using   System.Collections;   
  using   System.ComponentModel;   
  using   System.Data;   
  using   System.Drawing;   
  using   System.Web;   
  using   System.Web.SessionState;   
  using   System.Web.UI;   
  using   System.Web.UI.WebControls;   
  using   System.Web.UI.HtmlControls;   
  using   System.Data.SqlClient;   
    
  namespace   AdoDotNet_Demo   
  {   
  ///   <summary>   
  ///   RepeaterLink1   的摘要说明。   
  ///   </summary>   
  public   class   RepeaterLink1   :   System.Web.UI.Page   
  {   
  protected   System.Web.UI.WebControls.Repeater   Repeater2;   
  protected   System.Web.UI.WebControls.Repeater   Repeater1;   
    
  private   void   Page_Load(object   sender,   System.EventArgs   e)   
  {   
  //   在此处放置用户代码以初始化页面   
  if(!Page.IsPostBack)   
  {   
  string   strconn   =   "server=.;uid=sa;   pwd=;database=myweb";   
  SqlConnection   conn   =   new   SqlConnection(strconn);   
  SqlDataAdapter   da   =   new   SqlDataAdapter("select   *   from   userinfo",conn);   
  DataSet   ds   =   new   DataSet();   
  da.Fill(ds,"user");   
  SqlDataAdapter   da1   =   new   SqlDataAdapter("select   *   from   content",conn);   
  da1.Fill(ds,"content");   
  ds.Relations.Add("relation1",ds.Tables["user"].Columns["UserName"],ds.Tables["content"].Columns["UserName"]);   
    
  Repeater1.DataSource   =   ds.Tables["user"];   
  Repeater1.DataBind();   
    
  }   
  }   
    
  #region   Web   窗体设计器生成的代码   
  override   protected   void   OnInit(EventArgs   e)   
  {   
  //   
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。   
  //   
  InitializeComponent();   
  base.OnInit(e);   
  }   
    
  ///   <summary>   
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改   
  ///   此方法的内容。   
  ///   </summary>   
  private   void   InitializeComponent()   
  {           
  this.Repeater1.ItemDataBound   +=   new   System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);   
  this.Load   +=   new   System.EventHandler(this.Page_Load);   
    
  }   
  #endregion   
    
  private   void   Repeater1_ItemDataBound(object   sender,   System.Web.UI.WebControls.RepeaterItemEventArgs   e)   
  {   
  if(e.Item.ItemType   ==   ListItemType.Item)   
  {   
  //repeater1行数据获得到   
  DataRowView   drv   =   (DataRowView)e.Item.DataItem;   
  DataView   dv   =   drv.CreateChildView("relation1");   
    
  //根据行数据得到repeater2的数据源   
    
  //找到当前行中repeater2   
  System.Web.UI.WebControls.Repeater   r   =   (System.Web.UI.WebControls.Repeater)e.Item.FindControl("Repeater2");   
  r.DataSource   =   dv;   
  r.DataBind();   
  }   
  }   
  }   
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值