none
ASP.NET GridViewのフィールドのコントロールを動的に作成したい。 RRS feed

  • 質問

  • お世話になります。

    環境
    ASP.NET Visual Web Developer 2008 

    GridViewのある列のコントロールの設定を動的に変更したいのですが
    (2列目をCheckBoxにしたい。)


    サンプルですが

     Sub Screen_Init()
            Dim Data_Table As New DataTable()
            Dim Data_Set As New DataSet
            Dim i As Short = 0

            GridView1.Visible = True

            Data_Table = New DataTable("name")
            Data_Set = New DataSet

            '見出しの作成()
            Data_Table.Columns.Add("No.")
            Data_Table.Columns.Add("Gparh")

            Data_Set.Tables.Add(Data_Table)

            For i = 0 To 10
                Dim Drow As DataRow
                Drow = Data_Set.Tables("name").NewRow
                Drow(0) = "ABC"
                Drow(1) = True    <-----checkboxのデータ
                Data_Set.Tables("name").Rows.Add(Drow)
            Next

            GridView1.DataSource = Data_Set
            GridView1.DataBind()
            GridView1.DataMember = Data_Set.Tables(0).TableName

        End Sub

    このままだと普通にデータの内容のみの表示になります。

    2列目をcheckboxにするには
    具体的にどのように設定するのでしょうか?
    • 移動 星 睦美 2015年4月20日 7:36 WebMatrix から
    2015年3月19日 1:58

回答

  • とりあえず、以下辺りが参考になるかな?
    #VBじゃなくてごめんなさい。C#のコードをVBに変換するサイト等を利用すると便利です。

    Add dynamic CheckBox Column with CheckChanged event to GridView in ASP.Net
    http://aspforums.net/Threads/443958/Add-dynamic-CheckBox-Column-with-CheckChanged-event-to-GridView-in-ASPNet/

    How to add dynamic n checkbox columns to gridview ASP.NET
    http://stackoverflow.com/questions/11685470/how-to-add-dynamic-n-checkbox-columns-to-gridview-asp-net


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 星 睦美 2015年4月20日 7:36
    2015年3月19日 3:00
    モデレータ
  • DataTable の当該列を bool 型にすれば、自動的にチェックボックスになるはずです。

    もし Gparh 列をチェックボックスにしたいのであれば、コードの「見出しの作成」のところで、

    Data_Table.Columns.Add(new DataColumn("Gparh", typeof(bool)));

    のようにするということです(上記のコードは C# です)。

    他にもいろいろ方法はありますが、上記のようにするのが一番簡単そうです。お試しください。

    上記の方法では質問者さんの目的に適わなくて、他の方法が知りたい場合は、全体的なシナリオ・ストーリーを含めて何がやりたいかを書いていただければ別の方法を考えます。

    その際は、ご自分の環境(OS, IIS, .NET のバージョン、DB は何か、ブラウザは何かなど)もあわせて書いていただくようお願いします。


    #WebMatrix のフォーラムで質問されてますが、ASP.NET のフォーラムの方が適切ではないですか?

    • 回答としてマーク 星 睦美 2015年4月20日 7:36
    2015年3月19日 3:51

すべての返信

  • とりあえず、以下辺りが参考になるかな?
    #VBじゃなくてごめんなさい。C#のコードをVBに変換するサイト等を利用すると便利です。

    Add dynamic CheckBox Column with CheckChanged event to GridView in ASP.Net
    http://aspforums.net/Threads/443958/Add-dynamic-CheckBox-Column-with-CheckChanged-event-to-GridView-in-ASPNet/

    How to add dynamic n checkbox columns to gridview ASP.NET
    http://stackoverflow.com/questions/11685470/how-to-add-dynamic-n-checkbox-columns-to-gridview-asp-net


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 星 睦美 2015年4月20日 7:36
    2015年3月19日 3:00
    モデレータ
  • DataTable の当該列を bool 型にすれば、自動的にチェックボックスになるはずです。

    もし Gparh 列をチェックボックスにしたいのであれば、コードの「見出しの作成」のところで、

    Data_Table.Columns.Add(new DataColumn("Gparh", typeof(bool)));

    のようにするということです(上記のコードは C# です)。

    他にもいろいろ方法はありますが、上記のようにするのが一番簡単そうです。お試しください。

    上記の方法では質問者さんの目的に適わなくて、他の方法が知りたい場合は、全体的なシナリオ・ストーリーを含めて何がやりたいかを書いていただければ別の方法を考えます。

    その際は、ご自分の環境(OS, IIS, .NET のバージョン、DB は何か、ブラウザは何かなど)もあわせて書いていただくようお願いします。


    #WebMatrix のフォーラムで質問されてますが、ASP.NET のフォーラムの方が適切ではないですか?

    • 回答としてマーク 星 睦美 2015年4月20日 7:36
    2015年3月19日 3:51
  • どうもありがとうございます。

    アドバイスいただいた箇所の

     Data_Table.Columns.Add("graph", Type.GetType("System.Boolean"))

    にすることで自動的にチェックボックスになって表示しました。

    次回質問する際にはASP.NETのフォーラムにします。

    どうもありがとうございました。

    2015年3月19日 5:09