DataList嵌套实例

DataList嵌套的重点是要在外层DataList的ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层DataList的id,编写嵌套层DataList的绑定数据源事件,具体代码如下:

'--------前台代码DLNested.aspx:

1@ Page language="c#" Codebehind="DLNested.aspx.cs" AutoEventWireup="false" Inherits="Example.DateListNested" 
  1<html>
  2<head>
  3<title>DateListNested</title>
  4<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"/>
  5<meta content="C#" name="CODE_LANGUAGE"/>
  6<meta content="JavaScript" name="vs_defaultClientScript"/>
  7<meta content=" http://schemas.microsoft.com/intellisense/ie5 " name="vs_targetSchema"/>
  8<style type="text/css">TD { FONT-SIZE: 12px; COLOR: #000000; FONT-FAMILY: "宋体" }   
  9</style>
 10</head>
 11<body ms_positioning="GridLayout">
 12<form id="Form1" method="post" runat="server">
 13<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" width="100%">
 14<tr>
 15<td><a href="Default.aspx">DataList分页、编辑实例</a></td>
 16</tr>
 17<tr>
 18<td>
 19<asp:datalist id="DataList1" repeatcolumns="3" runat="server">
 20<itemtemplate>
 21<font face="宋体">
 22<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 23<tr>
 24<td><font color="red" face="宋体">
 25<asp:label id="Label1" runat="server" text='```
 26# Container.ItemIndex + ":" + DataBinder.Eval(Container.DataItem,"C_TypeName")
 27```'>
 28</asp:label>
 29<asp:label id="lblTypeId" runat="server" text='```
 30# DataBinder.Eval(Container.DataItem,"I_TypeID")
 31```' visible="False">
 32</asp:label>
 33</font></td>
 34</tr>
 35<tr>
 36<td>
 37<asp:datalist id="DataList2" runat="server">
 38<itemtemplate>
 39<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 40<tr>
 41<td>
 42<asp:label id="Label2" runat="server" text='```
 43# DataBinder.Eval(Container.DataItem,"C_Name") 
 44```'>
 45</asp:label></td>
 46</tr>
 47</table>
 48<font face="宋体"></font>
 49</itemtemplate>
 50<alternatingitemtemplate>
 51<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 52<tr>
 53<td><font color="#003333" face="宋体">
 54<asp:label id="Label6" runat="server" text='```
 55# DataBinder.Eval(Container.DataItem,"C_Name") 
 56```'>
 57</asp:label></font></td>
 58</tr>
 59</table>
 60<font face="宋体"></font>
 61</alternatingitemtemplate>
 62</asp:datalist></td>
 63</tr>
 64</table>
 65</font>
 66</itemtemplate>
 67<alternatingitemtemplate>
 68<font face="宋体">
 69<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 70<tr>
 71<td><font color="red" face="宋体">
 72<asp:label id="Label3" runat="server" text='```
 73# Container.ItemIndex + ":" + DataBinder.Eval(Container.DataItem,"C_TypeName") 
 74```'>
 75</asp:label>
 76<asp:label id="lblTypeID1" runat="server" text='```
 77# DataBinder.Eval(Container.DataItem,"I_TypeID")
 78```' visible="False">
 79</asp:label>
 80</font></td>
 81</tr>
 82<tr>
 83<td>
 84<asp:datalist id="Datalist3" runat="server">
 85<itemtemplate>
 86<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 87<tr>
 88<td>
 89<asp:label id="Label4" runat="server" text='```
 90# DataBinder.Eval(Container.DataItem,"C_Name") 
 91```'>
 92</asp:label></td>
 93</tr>
 94</table>
 95<font face="宋体"></font>
 96</itemtemplate>
 97<alternatingitemtemplate>
 98<table border="1" bordercolordark="white" cellpadding="1" cellspacing="1" width="100%">
 99<tr>
100<td><font color="#003333" face="宋体">
101<asp:label id="Label5" runat="server" text='```
102# DataBinder.Eval(Container.DataItem,"C_Name") 
103```'>
104</asp:label></font></td>
105</tr>
106</table>
107<font face="宋体"></font>
108</alternatingitemtemplate>
109</asp:datalist></td>
110</tr>
111</table>
112</font>
113</alternatingitemtemplate>
114</asp:datalist></td>
115</tr>
116</table>
117</form>
118</body>
119</html>

'--------后台代码DLNested.aspx.cs:

/----------------------------------------------------------------
// 版权所有: 亿思维软件工作室
// 网站地址: Http://www.easewe.com
// 联系方式: 87015203(QQ),[email protected](Email)
// 整理日期: 2005.09.14
//----------------------------------------------------------------
/
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.OleDb;
namespace Example
{
///

1<summary>   
2/// DateListNested 的摘要说明。   
3/// </summary>

public class DateListNested : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
protected string connString;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
connString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Request.PhysicalApplicationPath + "DataList.mdb";
if ( !Page.IsPostBack )
{
BindData();
//BindArticle();
}
}

private void BindData()
{
string commandText = "select * from ArticleType";
//----------
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = connString;
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(commandText,conn);
DataSet ds = new DataSet();
da.Fill(ds,"ArticleType");
conn.Close();
//----------
DataList1.DataSource = ds.Tables["ArticleType"];
DataList1.DataBind();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///

1<summary>   
2/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
3/// 此方法的内容。   
4/// </summary>

private void InitializeComponent()
{
this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
DataList dl = null;
Label lblTypeID = null;
if ( e.Item.ItemType == ListItemType.Item )
{
dl = (DataList)e.Item.FindControl("DataList2");
lblTypeID = (Label)e.Item.FindControl("lblTypeID");
}
else
{
dl = (DataList)e.Item.FindControl("DataList3");
lblTypeID = (Label)e.Item.FindControl("lblTypeID1");
}
string typeID = lblTypeID.Text.ToString();
string commandText = "select * from Article";
commandText = commandText + " Where I_TypeID=" + typeID;
//------------
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = connString;
conn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(commandText,conn);
DataSet ds = new DataSet();
da.Fill(ds,"Article");
conn.Close();
//------------
dl.DataSource = ds.Tables["Article"];
dl.DataBind();
}

}
}
}

_ 下载源程序 _

_ 查看运行实例 _

Published At
Categories with Web编程
Tagged with
comments powered by Disqus