写一点在初学者实践的时候需要注意的东西。
创建商品目录:
创建存储过程:GetDepartments
为网站添加业务。
BalloonShopConfiguration.cs
这个类里面主要是一些配置信息。
GenericDataAccess.cs
通用的一些方法
好我们看表示层,
新建一个用户控件,里面放上Datalist
编辑Html代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="DepartmentList.ascx.cs" Inherits="UserControls_DepartmentList" %>
<asp:DataList ID="list" runat="server" CssClass="DepartmentListContent"
Width="200px">
<HeaderTemplate>
Choose a Department
</HeaderTemplate>
<HeaderStyle CssClass="DepartmentListHead" />
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# "../Catalog.aspx?DepartmentID="+ Eval("DepartmentID") %>'
Text='<%#Eval("Name") %>'
ToolTip='<%#Eval("Description") %>'
CssClass='<%# Eval("DepartmentID").ToString()==Request.QueryString["DepartmentID"]?"DepartmentSelected":"DepartmentUnselecteded" %>'
></asp:HyperLink>
</ItemTemplate>
</asp:DataList>
后台代码
public partial class UserControls_DepartmentList : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
list.DataSource = CatalogAccess.GetDepartments();
list.DataBind();
}
好,我们走一遍:程序运行,首先调用将Datalist绑定数据源,
首先是到这个方法list.DataSource = CatalogAccess.GetDepartments();需要一个数据源
转跳到public static DataTable GetDepartments(),这个方法返回一个Datatable,再转跳到GenericDataAccess.CreateCommand()来生成一个Comm。有了comm,给出存储过程的名称,comm执行存储过程就OK了,返回一个Datatable,最后绑定Datalist。
流程很清晰!
不过这个<ItemTemplate>
要注意看下,超链接NavigateUrl='<%# "../Catalog.aspx?DepartmentID="+ Eval("DepartmentID") %>' Text='<%#Eval("Name") %>'
返回Text目的就达到了,为什么要把ID放在URL里呢?在,Cssclass里面就知道为什么要把ID也返回并在页面见传递了。至于Eval是怎么在后面工作的,暂时就不用管了!
清楚的知道流程就可以了!
后面还有错误页面的设计,我还不会Email的设置,我就不说了!