asp.net實(shí)現(xiàn)DataList與Repeater嵌套綁定的方法

字號(hào):


    本文實(shí)例講述了asp.net實(shí)現(xiàn)DataList與Repeater嵌套綁定的方法。分享給大家供大家參考,具體如下:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs" Inherits="home" %>
    <body>
      <form id="form1" runat="server">
           <asp:DataList ID="monitorTypeList" runat="server" RepeatColumns="4"
             onitemdatabound="monitorTypeList_ItemDataBound" RepeatDirection="Horizontal" ItemStyle-VerticalAlign="Top">
           <ItemTemplate>
            <table width="186" cellpadding="0" cellspacing="1">
             <tr>
              <th><a href="<%#Eval("plugpath") %>"><%#Eval("monitor_type_name") %></a></th>
             </tr>
             <asp:Repeater ID="monitorConfigList" runat="server">
              <ItemTemplate>
             <tr>
              <td><a href="<%#Eval("plugpath") %>?monitor_id=<%#Eval("monitor_id") %>"><%#Eval("monitor_name") %></a></td>
             </tr>
              </ItemTemplate>
             </asp:Repeater>
            </table>
          </ItemTemplate>
          </asp:DataList>
      </form>
    </body>
    home.aspx.cs
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    public partial class home : System.Web.UI.Page
    {
      protected void Page_Load(object sender, EventArgs e)
      {
        myCheck.IsLoginNonReturn();
        if (!IsPostBack)
        {
          Bind_monitorTypeList();
        }
      }
      protected void Bind_monitorTypeList()
      {
        string sql = "select monitor_type_id,monitor_type_name from monitor_type";
        DbConn conn = new DbConn();
        DataSet ds = conn.DataSet(sql,"monitor_type");
        monitorTypeList.DataSource = ds.Tables[0];
        monitorTypeList.DataBind();
        ds.Dispose();
        conn.Close();
      }
      protected void monitorTypeList_ItemDataBound(object sender, DataListItemEventArgs e)
      {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
          string monitor_type_id = ((DataRowView)e.Item.DataItem).Row["monitor_type_id"].ToString();
          Repeater monitorConfigList = (Repeater)e.Item.FindControl("monitorConfigList");
          if (monitorConfigList != null)
          {
            string sql = "select monitor_id,nonitor_name,plugpath from monitor where monitor_type_id=" + monitor_type_id;
            DbConn conn = new DbConn();
            DataSet ds = conn.DataSet(sql, "monitor");
            monitorConfigList.DataSource = ds.Tables[0];
            monitorConfigList.DataBind();
            ds.Dispose();
            conn.Close();
          }
        }
      }
    }
    希望本文所述對(duì)大家asp.net程序設(shè)計(jì)有所幫助。