(18):チュートリアル(7)〜ページデザイン〜


著者一覧を表示するページ「ViewAll.aspx」のデザイン手順は次の通り。

  • (1)データを一覧表示するGridViewコントロールと、ObjectContainerDataSourceコントロールを配置する。

  • (2)ObjectContainerDataSourceコントロールのデータソースに、Authorクラスを設定する(データバインドするEntityクラスを設定する。ObjectDataSourceコントロールと似ているが、CRUDメソッドを指定する必要がない)。

  • (3)GridViewのデータソースにObjectContainerDataSourceコントロールを選択する。スキーマを更新すれば、GridViewのカラムがAuthorクラスのプロパティに従って自動的に設定される。ここでは「選択を有効にする」にチェックをいれておく。


最終的な「ViewAll.aspx」のコードは次の通り。

<%@ Page Language="C#" AutoEventWireup="true"
    CodeFile="ViewAll.aspx.cs" Inherits="AuthorsBL_ViewAll"
    Title="ViewAll" MasterPageFile="~/Shared/Default.master" %>

<%--ObjectContainerDataSource用の宣言--%>
<%@ Register Assembly="Microsoft.Practices.Web.UI.WebControls"
    Namespace="Microsoft.Practices.Web.UI.WebControls"
    TagPrefix="pp" %>

<%--マスタページ内のコンテンツ設定--%>    
<asp:Content ID="content" ContentPlaceHolderID="DefaultContent" runat="Server">
    <h1>ViewAll</h1>
    <%--WCSFのデータソースコントロール--%>
    <pp:ObjectContainerDataSource ID="ObjectContainerDs"
        runat="server" DataObjectTypeName="MyWcsf.AuthorsBL.Entity.Author" />
        
    <%--データを一覧表示するGridViewコントロール--%>
    <asp:GridView ID="GridView1" runat="server"
        AutoGenerateColumns="False" DataSourceID="ObjectContainerDs">
        <Columns>
            <asp:CommandField ShowSelectButton="True" />
            <asp:BoundField DataField="Tel" HeaderText="Tel"
                SortExpression="Tel" />
            <asp:BoundField DataField="Id" HeaderText="Id"
                SortExpression="Id" />
            <asp:BoundField DataField="Name" HeaderText="Name"
                SortExpression="Name" />
            <asp:BoundField DataField="RegDage" HeaderText="RegDage"
                SortExpression="RegDage" />
        </Columns>
    </asp:GridView>
    
</asp:Content>