</td>
</tr>
</table>
</td>
</tr>
</table>
<table id="mainBody" style="LEFT: 120px; VERTICAL-ALIGN: top; WIDTH: 848px; POSITION: absolute; TOP: 94px; HEIGHT: 100%" border="1">
<tr>
<td width="100%" style="VERTICAL-ALIGN: top">
<asp:contentplaceholder id="middleContent" runat="Server"></asp:contentplaceholder>
</td>
</tr>
</table>
</form>
</body>
</html>
接下来,我们首先创建以显示作者页面的Authors.aspx页面,由于页面的框 架要保持一直,因此,可以利用maser-page技术,在新建页面时,引入刚才建立 的CommonMaster页面,如下图:
点ADD按钮后,出现如下图,选择刚才建立的CommonMaster页面,如下图:
再输入如下代码:
<%@ Page Language="C#" MasterPageFile="~/CommonMaster.master" %>
<asp:content id="Content1" contentplaceholderid="middleContent" runat="server">
<asp:objectdatasource runat="server" id="authorsSource" typename="AuthorsBiz" selectmethod="GetAuthors">
</asp:objectdatasource>
<asp:gridview runat="server" AutoGenerateColumns="false" id="authorsView" datasourceid="authorsSource">
<alternatingrowstyle backcolor="Silver"></alternatingrowstyle>
<Columns>
<asp:HyperLinkField DataTextField="au_id" HeaderText="Author ID" DataNavigateUrlFields="au_id"
DataNavigateUrlFormatString="AuthorTitles.aspx?AuthorID={0}">
</asp:HyperLinkField>
<asp:BoundField HeaderText="Last Name" DataField="au_lname"></asp:BoundField>
<asp:BoundField HeaderText="First Name" DataField="au_fname"></asp:BoundField>
<asp:BoundField HeaderText="Phone" DataField="phone"></asp:BoundField>
<asp:BoundField HeaderText="Address" DataField="address"></asp:BoundField>
<asp:BoundField HeaderText="City" DataField="city"></asp:BoundField>
<asp:BoundField HeaderText="State" DataField="state"></asp:BoundField>
<asp:BoundField HeaderText="Zip" DataField="zip"></asp:BoundField>
</Columns>
</asp:gridview>
</asp:content>
注意,其中我们用到了objectdatasource控件,在.NET 2.0中,有了该控件 ,可以很方便地沟通表示层和逻辑层。其中的代码如下:
<asp:objectdatasource runat="server" id="authorsSource" typename="AuthorsBiz" selectmethod="GetAuthors">
</asp:objectdatasource>
其中的typename属性指定为我们之前创建的逻辑层的类AuthorsBiz类,而为 了获得数据,采用了selectmethod方法,这里指定了之前建立的GetAuthors方法 。当然,也可以在其他场合,应用Updateme |