程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Repeater中嵌套Repeater的示例

Repeater中嵌套Repeater的示例

編輯:更多關於編程

      代碼如下:

      protected void Page_Load(object sender, EventArgs e)

      {

      if (!Page.IsPostBack)

      {

      this.dtCategory = GetCategoryTable();

      this.dtProduct = GetProductTable();

      rptCategoryList.DataSource = dtCategory;

      rptCategoryList.DataBind();

      }

      }

      // 准備一張分類表

      DataTable GetCategoryTable()

      {

      DataTable dt = new DataTable();

      dt.Columns.Add("CategoryId", typeof(int));

      dt.Columns.Add("CategoryTitle", typeof(string));

      for (int i = 1; i <= 3; i++)

      {

      DataRow row = dt.NewRow();

      row["CategoryId"] = i;

      row["CategoryTitle"] = "分類名字 " + i + "";

      dt.Rows.Add(row);

      }

      return dt;

      }

      // 准備一張產品表

      DataTable GetProductTable()

      {

      DataTable dt = new DataTable();

      dt.Columns.Add("ProductTitle", typeof(string));

      dt.Columns.Add("CategoryId", typeof(int));

      for (int i = 1; i <= 9; i++)

      {

      DataRow row = dt.NewRow();

      row["ProductTitle"] = "產品名字 " + i + "";

      if (i > 6) row["CategoryId"] = 3;

      else if (i > 3) row["CategoryId"] = 2;

      else row["CategoryId"] = 1;

      dt.Rows.Add(row);

      }

      return dt;

      }

      // 獲取某個類別的產品

      DataTable GetProductTable(int categoryId)

      {

      DataView dv = this.dtProduct.DefaultView;

      dv.RowFilter = " CategoryId=" + categoryId + " ";

      return dv.ToTable();

      }

      protected void rptCategoryList_ItemDataBound(object sender, RepeaterItemEventArgs e)

      {

      if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)

      {

      DataRowView drv = (DataRowView)e.Item.DataItem;

      Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");

      ltlTitle.Text = drv["CategoryTitle"].ToString();

      Repeater rptProductList = (Repeater)e.Item.FindControl("rptProductList");

      rptProductList.DataSource = GetProductTable(Convert.ToInt32(drv["CategoryId"]));

      rptProductList.DataBind();

      }

      }

      protected void rptProductList_ItemDataBound(object sender, RepeaterItemEventArgs e)

      {

      if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)

      {

      DataRowView drv = (DataRowView)e.Item.DataItem;

      Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");

      ltlTitle.Text = drv["ProductTitle"].ToString();

      }

      }

      前台aspx代碼

      .代碼如下:

      <</CODE>form id="form1" runat="server"> 
      <</CODE>div> 
      <</CODE>asp:Repeater ID="rptCategoryList" runat="server"   OnItemDataBound="rptCategoryList_ItemDataBound"> 
      <</CODE>ItemTemplate> 
      <</CODE>div class="listBox"> 
      <</CODE>div class="title"> 
      <</CODE>asp:Literal ID="ltlTitle" runat="server"></</CODE>asp:Literal></</CODE>div> 
      <</CODE>div class="content"> 
      <</CODE>ul> 
      <</CODE>asp:Repeater ID="rptProductList" runat="server" OnItemDataBound="rptProductList_ItemDataBound"> 
      <</CODE>ItemTemplate> 
      <</CODE>li> 
      <</CODE>asp:Literal ID="ltlTitle" runat="server"></</CODE>asp:Literal> 
      </</CODE>li> 
      </</CODE>ItemTemplate> 
      </</CODE>asp:Repeater> 
      </</CODE>ul> 
      </</CODE>div> 
      </</CODE>div> 
      </</CODE>ItemTemplate> 
      </</CODE>asp:Repeat</</CODE>div> 
      </</CODE>form>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved