ASP.Netのお勉強

GridViewにDropDownListを配置@ASP.Net

GridViewにDropDownListを配置します。

DataClassを作成します。
getDataFieldは、DropDownListに表示する内容です。
getDataは、GridViewに表示する内容です。

ObjectDataSourceを二つ作成し、DataClassを選択します。
それぞれのselectにgetData、getDataFieldを指定します。

GridView1にObjectDataSourceを配置し、DropDownListにもObjectDataSourceを配置します。
DropDownListのDataTextField、DataValueField、SelectedValueに値を設定します。

画面を表示すると、DropDownListが表示されSelectedValueで設定された値が選択された状態で表示されます。


●aspx

<div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
        <Columns>
            <asp:TemplateField HeaderText="DropDownList">
                <ItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource2" DataTextField="DataTextField" DataValueField="DataValueField" SelectedValue='<%# Eval("DropDownList") %>'>
                    </asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="getData" TypeName="DataClass"></asp:ObjectDataSource>
    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="getDataField" TypeName="DataClass"></asp:ObjectDataSource>
</div>


●vb

Imports Microsoft.VisualBasic
Imports System.data

Public Class DataClass

    Public Function getDataField() As DataSet

        Dim dt As DataTable
        Dim dr As DataRow

        Dim ds As DataSet

        dt = New DataTable()

        dt.Columns.Add("DataTextField", GetType(String))
        dt.Columns.Add("DataValueField", GetType(String))

        dr = dt.NewRow
        dr("DataValueField") = "100"
        dr("DataTextField") = "100です。"
        dt.Rows.Add(dr)

        dr = dt.NewRow
        dr("DataValueField") = "200"
        dr("DataTextField") = "200です。"
        dt.Rows.Add(dr)

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

        Return ds
    End Function


    Public Function getData() As DataSet
        Dim dt As DataTable
        Dim dr As DataRow

        Dim ds As DataSet

        dt = New DataTable()

        dt.Columns.Add("DropDownList", GetType(String))

        dr = dt.NewRow
        dr("DropDownList") = "100"
        dt.Rows.Add(dr)

        dr = dt.NewRow
        dr("DropDownList") = "200"
        dt.Rows.Add(dr)

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

        Return ds
    End Function
End Class

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