トップ «前の日記(2008-05-27) 最新 次の日記(2008-05-29)» 編集

ピックはどこだ。


2008-05-28 [長年日記]

_ [life]出勤

7:20(JST) いってきます。

_ [program]GridView

ASP.NET 2005(VB) の GridView にプログラムからデータを流し込むためのメモ。

DataField に Key 名を指定しないといけない。 以下の例だと key1 とか key2 とかがそれにあたる。

'データテーブル宣言
Dim dt As New DataTable()

'カラム列を追加
dt.Columns.Add("key1", GetType(String))
dt.Columns.Add("key2", GetType(String))
dt.Columns.Add("key3", GetType(String))
dt.Columns.Add("key4", GetType(String))

'内容追加
dt.Rows.Add("a", "b", "c", "d")
dt.Rows.Add("e", "f", "g", "h")

'グリッドビューにデータバインド
GridView1.DataSource = dt
GridView1.DataBind()

_ [program]GridView ヘッダ複数行表示

ASP.NET 2005(VB) の GridView のヘッダを複数行にしたり結合したりするメモ。

GridView で以下のようなヘッダを作りたい時には TableCell でヘッダを作ってそれを GridView にくっつけることで再現できるぽい。

+-----+---+---+
|h1   |h2 |h3 |
+-+-+-+-+-+-+-+
|a|b|c|d|e|f|g|
+-+-+-+-+-+-+-+

TableCell で指定したセルが GridView の上にくっつく。 以下の例のようにセルを複数指定して横に並べることもできる。

'セルを追加(タイトルの数分?)
Dim cell1 As New TableCell
Dim cell2 As New TableCell
Dim cell3 As New TableCell

'ヘッダー行を宣言
Dim row As GridViewRow = New GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Alternate)

'colspan をプロパティ設定
cell1.ColumnSpan = 3
cell2.ColumnSpan = 2
cell3.ColumnSpan = 2
'cell.Font.Size = 10 ←フォントサイズも指定できる

'ヘッダーテキストを設定
cell1.Text = "h1"
cell2.Text = "h2"
cell3.Text = "h3"

'行にセルを追加
row.Cells.Add(cell1)
row.Cells.Add(cell2)
row.Cells.Add(cell3)

'GridView に結合する
GridView1.Controls(0).Controls.AddAt(0, row)

_ [program]GridView に TextBox 等を追加

ASP.NET 2005(VB) の GridView に TextBox 等を追加するメモ。

<asp:GridView ID="GridView1" Runat="server">
    <Columns>
        <asp;TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" Runat="server" Text='<%# Container.DataItem("key1") %>'></asp:TextBox>
            </ItemTemplate>
        </asp;TemplateField>
    </Columns>
</asp:GridView>

DropDownList を追加するには以下のような感じで。

<asp:GridView ID="GridView1" Runat="server">
    <Columns>
        <asp;TemplateField>
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" Runat="server"></asp:DropDownList>
            </ItemTemplate>
        </asp;TemplateField>
    </Columns>
</asp:GridView>

DrowDownList の中身を動的に追加するにはこんな感じか。

Dim lngI As Long
For lngI=0 To GridView1.Items.Count() -1
    CType(GridView1.Items(lngI).FindControl("DropDownList1"), DropDownList).Items.Insert(0, "Text", "Value")
Next

Button を追加するには以下のような感じで。

<asp:GridView ID="GridView1" Runat="server">
    <Columns>
        <asp;TemplateField>
            <ItemTemplate>
                <asp:Button ID="Button1" Runat="server" CausesValidation="false" CommandName="ButtonPush" Text="ボタン" />
            </ItemTemplate>
        </asp;TemplateField>
    </Columns>
</asp:GridView>

このボタンが押されたかどうかは GridView1_RowCommand イベントで拾うことができる。

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand

    If (e.CommandName = "ButtonPush") Then
         Text1.Text = sender.Rows.Count
    End If

End Sub

こうしておけば ButtonPush が走った時の行番号が拾える。 後は行番号を使って中身を取り出すなりなんなりすればいい。

_ [program]GridView に行番号を追加

ASP.NET 2005(VB) の GridView に行番号(単純連番)を追加するメモ。

<asp:GridView ID="GridView1" Runat="server">
    <Columns>
        <asp;TemplateField>
            <ItemTemplate>
                <%# Container.DataSetIndex + 1 %>
            </ItemTemplate>
        </asp;TemplateField>
    </Columns>
</asp:GridView>

_ [life]帰宅

24:40(JST) ただいま。


2002|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|05|12|

カテゴリ :
body | book | boot | bsd | cml | darts | debian | diary | food | game | hns | home | hpcmips | js | life | linux | mac | maid | mds | misc | music | mutt | netbsd | palm | pda | perl | piv | program | qmail | room | satori | stationery | tdiary | tv | univ | unix | vi | vim | willcom | win | windows | work

最近のつっこみ :

  1. name (03-08)
  2. name (03-08)
  3. name (03-08)
  4. name (03-08)
  5. name (03-08)

written by MUGETU Kasumi