asp.net2.0控件DataList实例应用
DataList控件实例应用
在网站开发中,经常需要使用DataList控件显示具有主次结构的数据。本实例中,通过在DataList控件中嵌套一个DataList控件来根据员工姓名显示员工的详细信息。实例运行结果如图1所示。

图1 使用DataList控件显示具有主次结构的数据
程序开发步骤如下所示。
(1)新建一个网站,将其命名为Ex22_02,默认主页名为Default.aspx。
(2)Default.aspx页面涉及的控件如表2所示。

表2 Default.aspx页面用到的控件
(3)主要程序代码如下。
在HTML源设计视图中对嵌套的DataList控件进行数据绑定,将其DataSource属性设置为建立的表间关系,同时将其DataKeyField属性设置为建立表间关系时所依据的数据表字段,实现代码如下:
在Default.aspx页的Page_Load事件中,首先从数据表中检索数据,同时取得要显示的主数据和从数据,填充到DataSet中,然后根据用户姓名创建DataRelation对象,并通过使用数据绑定方法将相关信息绑定到DataList控件中。Default.aspx页Page_Load事件代码如下网站源代码:
protected void Page_Load(object sender, EventArgs e)
{//本教程来自:http://www.isstudy.com
SqlConnection myConn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
string sqlStr = "select top 3* from tb_EmpID select top 3a.*,b.UserID from tb_Employee as a inner join tb_EmpID as b on a.UserID=b.UserID";
SqlDataAdapter myda = new SqlDataAdapter(sqlStr, myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myds.Tables[0].TableName = "tb_EmpID";
myds.Tables[1].TableName = "tb_Employee";
DataColumn Parent = myds.Tables["tb_EmpID"].Columns["UserLoginName"];
DataColumn Child = myds.Tables["tb_Employee"].Columns["UserLoginName"];
DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, False);
myds.Relations.Add(tableRelation);
DataList1.DataSource = myds.Tables["tb_EmpID"].DefaultView;
DataList1.DataBind();
myConn.Close();
}
完整程序代码如下:
★ ★★★★Default.aspx页面设计文件完整程序代码★★★★★
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
DataList实现主细表