ASP.Netのお勉強

GridViewにDataListを配置@ASP.Net

GridViewにDataListを配置します。

ObjectDataSourceに指定するビジネスオブジェクトのクラスを作成します。
Class1を作成し、DataSetを返すgetDataメソッドを作成します。

getDataメソッドは、
DataTableのカラムにDataTable配置したDataTableを作成し、
DataSetに追加して返します。

GridViewとDataListを配置して、
GridViewのDataSourceIDにObjectDataSourceを指定し、
DataListのDataSourceに作成したDataTableのカラム名を指定します。


●aspx

<asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False" AllowPaging="True" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" PageSize="2">
    <Columns>
        <asp:TemplateField HeaderText="DataList">
            <itemtemplate>
                <asp:DataList runat="server" DataSource=<%# Eval("DataList") %> ID="DataList">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text=<%# Eval("NO") %>></asp:Label>
                    <asp:Label ID="Label2" runat="server" Text=<%# Eval("Title") %>></asp:Label>
                </ItemTemplate>
                </asp:DataList>
            </itemtemplate>
        </asp:TemplateField>
    </Columns>
    <RowStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" />
    <HeaderStyle BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" />
</asp:GridView>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="getData"TypeName="Class1"></asp:ObjectDataSource>


●vb

Imports System.data
Imports Microsoft.VisualBasic

Public Class Class1


    Public Function getData() As DataSet

        Dim dtList As DataTable
        Dim drList As DataRow

        Dim dt As DataTable
        Dim dr As DataRow

        Dim ds As DataSet

        dt = New DataTable()

        dt.Columns.Add("NO", GetType(String))
        dt.Columns.Add("TITLE", GetType(String))

        dtList = New DataTable()
        dtList.Columns.Add("DataList", GetType(DataTable))


        '一列目
        dr = dt.NewRow
        dr("NO") = "1-1"
        dr("TITLE") = "TITLE1-1"
        dt.Rows.Add(dr)

        dr = dt.NewRow
        dr("NO") = "1-2"
        dr("TITLE") = "TITLE1-2"
        dt.Rows.Add(dr)

        drList = dtList.NewRow
        dtList.Rows.Add(dt)

        '二列目列目
        dt = New DataTable()

        dt.Columns.Add("NO", GetType(String))
        dt.Columns.Add("TITLE", GetType(String))

        dr = dt.NewRow
        dr("NO") = "2-1"
        dr("TITLE") = "TITLE2-1"
        dt.Rows.Add(dr)

        dr = dt.NewRow
        dr("NO") = "2-2"
        dr("TITLE") = "TITLE2-2"
        dt.Rows.Add(dr)

        drList = dtList.NewRow
        dtList.Rows.Add(dt)

        '三列目列目
        dt = New DataTable()

        dt.Columns.Add("NO", GetType(String))
        dt.Columns.Add("TITLE", GetType(String))

        dr = dt.NewRow
        dr("NO") = "3-1"
        dr("TITLE") = "TITLE3-1"
        dt.Rows.Add(dr)

        dr = dt.NewRow
        dr("NO") = "3-2"
        dr("TITLE") = "TITLE3-2"
        dt.Rows.Add(dr)

        drList = dtList.NewRow
        dtList.Rows.Add(dt)


        'DataSet作成
        ds = New DataSet
        ds.Tables.Add(dtList)

        Return ds
    End Function
End Class

Copyright (C) ASP.Netのお勉強. All Rights Reserved.