zoukankan      html  css  js  c++  java
  • 数据控件嵌套的几种方法

    俺的方法:
    <asp:Repeater ID="myrpList" runat="server">
              
    <HeaderTemplate>
              
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
              
    </HeaderTemplate>
              
    <ItemTemplate>
                
    <tr>
                  
    <td width="4%" height="25" valign="top">&nbsp;</td>
                  
    <td width="96%" valign="top"><strong><%Eval("classname")%></strong></td>
                
    </tr>
                
    <tr>
                  
    <td height="25" valign="top">&nbsp;</td>
                  
    <td valign="top">
                   
    <asp:DataList ID="mydList" runat="server"><HeaderTemplate>
                    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                      
    </HeaderTemplate>         
                        
    <ItemTemplate>
                      
    <tr>
                        
    <td>&nbsp;<%Eval("title")%></td>
                      
    </tr>
                        
    </ItemTemplate>
                        
    <FooterTemplate>
                    
    </table></FooterTemplate></asp:DataList></td>
                
    </tr> 
                
    </ItemTemplate>
                
    <FooterTemplate>
              
    </table> 
              
    </FooterTemplate>             
              
    </asp:Repeater>

    CS:
        void BinData()
        
    {
            WebClass.ArticleList tmp 
    = new WebClass.ArticleList();
            DataTable dt 
    = tmp.ListClass();
            
    this.myrpList.DataSource = dt;
            
    this.myrpList.DataBind();

            
    int strID;
            
    foreach (RepeaterItem it in this.myrpList.Items)
            
    {
                
    int i = int.Parse(it.ItemIndex.ToString());
                strID 
    = int.Parse(dt.Rows[i]["id"].ToString());
                DataList dlist 
    = (DataList)it.FindControl("mydList");

                dlist.DataSource 
    = tmp.ShowClassAricle(strID);
                dlist.DataBind();
            }

        }

    网上看到的:
    //在绑定分类品名时,绑定分类下的产品 
    private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) 

        BLL.Products products 
    =new BLL.Products(); 
        
    if (e.Item.ItemType == ListItemType.Item ||    e.Item.ItemType == ListItemType.AlternatingItem)  
        

            Repeater rptProduct 
    = (Repeater) e.Item.FindControl("rptProduct"); 
            
    //找到分类Repeater关联的数据项 
            DataRowView rowv = (DataRowView)e.Item.DataItem; 
            
    //提取分类ID 
            int CategorieId = Convert.ToInt32(rowv["ID"]); 
            
    //根据分类ID查询该分类下的产品,并绑定产品Repeater 
            rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId); 
            rptProduct.DataBind(); 
        }
     
    }
     

    还有一种方法:
    <!-- start parent repeater -->
    <asp:repeater id="parentRepeater" runat="server">
       
    <itemtemplate>
          
    <b><%# DataBinder.Eval(Container.DataItem,"au_id"%></b><br>

          
    <!-- start child repeater -->
          
    <asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)
          .Row.GetChildRows("myrelation") %
    >' runat="server">

             
    <itemtemplate>
                
    <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
             
    </itemtemplate>
          
    </asp:repeater>
          
    <!-- end child repeater -->

       
    </itemtemplate>
    </asp:repeater>
    <!-- end parent repeater -->

    cs:
       public void Page_Load(object sender, EventArgs e)
        
    {
            
    //Create the connection and DataAdapter for the Authors table.
            SqlConnection cnn = new SqlConnection("server=.;database=pubs; user id=sa;pwd=;");
            SqlDataAdapter cmd1 
    = new SqlDataAdapter("select * from authors", cnn);

            
    //Create and fill the DataSet.
            DataSet ds = new DataSet();
            cmd1.Fill(ds, 
    "authors");

            
    //Create a second DataAdapter for the Titles table.
            SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor", cnn);
            cmd2.Fill(ds, 
    "titles");

            
    //Create the relation bewtween the Authors and Titles tables.
            ds.Relations.Add("myrelation",
            ds.Tables[
    "authors"].Columns["au_id"],
            ds.Tables[
    "titles"].Columns["au_id"]);

            
    //Bind the Authors table to the parent Repeater control, and call DataBind.
            parentRepeater.DataSource = ds.Tables["authors"];
            Page.DataBind();

            
    //Close the connection.
            cnn.Close();
        }

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/cnaspnet/p/938946.html
Copyright © 2011-2022 走看看