DOBON.NET DOBON.NETプログラミング掲示板過去ログ

動的に作成したデータグリッドの編集ボタン

  • 題名: 動的に作成したデータグリッドの編集ボタン
  • 著者: カゴ
  • 日時: 2004/07/01 20:43:54
  • ID: 4676
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[Windows2000、VB.NET、NET Framework1.1]
分類:[ASP.NET]

こんにちは。
データグリッドを動的に作成した場合の編集ボタンや取消ボタンの使い方についてご存知でしたら教えてください。

下記のように、表示するデータグリッドの数が動的に変わり(データグリッドを2つ表示するときもあれば3つのときもある)、
更に、各データグリッドの各行のデータを更新する処理を考えています。
各データグリッドの各行に表示されるデータを更新できるように<編集ボタン><更新ボタン><取消ボタン>を
設定しており、正しく<編集ボタン>は表示されているのですが、
クリックしてもイベント処理がうまくいかずに<更新ボタン>の表示などが出来ません。
「イベント処理がうまくいかずに」と書きましたが、実際にはイベント処理についてどのようすればよいのか分からず、
全くコーディングしていません。

色々な参考書によると、<編集ボタン>をクリックするとボタンに応じて
OnEditCommand、OnUpdateCommand、OnCancelCommandの3つのイベントが発生するので、
<asp:DataGrid id="DataGrid1"
OnEditCommand = "aaa処理"
OnUpdateCommand = "bbb処理"
OnCancelCommand = "ccc処理"
・・・
と<asp:DataGrid>タグの属性にイベント処理を指定すること
と記載されていますが、動的にデータグリッドを作成した場合はどのようにすればよいのか分かりません。
恐らく、下記のNEW_DATAGRID1の中にOnEditCommand = "aaa処理"をコーディングするのではないかと思いますが、
どのようにすればよいのかご存知の方がいらしたら教えてください。
データグリッドDataGrid1のプロパティにOnEditCommandがあれば、それに"aaa処理"を設定することになるのでしょうが、
そのようなプロパティがないために設定方法がわかりません。

For Grid_Su = 0 to N
Grid_Name = Grid_Su
Dim DataGrid1 As New DataGrid
Call NEW_DATAGRID1(DataGrid1, Grid_Name, Grid_Su, dviw)
Next Grid_Su
'■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
'■■■■■■データグリッドを作成するSubプロシージャ
Private Sub NEW_DATAGRID1(ByVal DataGrid1 As DataGrid, ByVal Grid_Name As String, ByVal Grid_Su As Integer, ByVal dviw As DataView)
Dim TOP_POS As Integer = 250 + Grid_Su * 90

DataGrid1.ID = "DataGrid1_" & Grid_Name
DataGrid1.Style("Position") = "Absolute"
DataGrid1.Style("Top") = TOP_POS & "px"
DataGrid1.Style("Left") = "16px"
DataGrid1.Style("Font-size") = "x-small"
DataGrid1.HeaderStyle.ForeColor = Color.Yellow
DataGrid1.HeaderStyle.BackColor = Color.Gray
DataGrid1.FooterStyle.ForeColor = Color.Yellow
DataGrid1.FooterStyle.BackColor = Color.Gray
DataGrid1.ShowFooter = True
DataGrid1.DataSource = dviw
DataGrid1.AutoGenerateColumns = False
Form1.Controls.Add(DataGrid1)

Dim GridColumn0 As New EditCommandColumn
GridColumn0.ButtonType = ButtonColumnType.PushButton
GridColumn0.HeaderText = "編集用ボタン"
GridColumn0.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
GridColumn0.FooterText = "合計"
GridColumn0.FooterStyle.HorizontalAlign = HorizontalAlign.Center
GridColumn0.EditText = "編集"
GridColumn0.UpdateText = "更新"
GridColumn0.CancelText = "取消"

GridColumn0.HeaderStyle.Width = New Unit(80)
GridColumn0.ItemStyle.Width = New Unit(80)
DataGrid1.Columns.Add(GridColumn0)

Dim GridColumn1 As New BoundColumn
GridColumn1.DataField = "社員名"
GridColumn1.HeaderText = "社員名"
GridColumn1.HeaderStyle.Width = New Unit(60)
GridColumn1.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
GridColumn1.ItemStyle.Width = New Unit(60)
DataGrid1.Columns.Add(GridColumn1)

Dim GridColumn2 As New BoundColumn
GridColumn2.DataField = "社内部署名"
GridColumn2.HeaderText = "社内部署名"
GridColumn2.HeaderStyle.Width = New Unit(80)
GridColumn2.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
GridColumn2.ItemStyle.Width = New Unit(80)
DataGrid1.Columns.Add(GridColumn2)
DataGrid1.Columns(2).Visible = False
End Sub

DOBON.NET | プログラミング道 | プログラミング掲示板