- カタナ
- 大ベテラン
- 会議室デビュー日: 2006/05/25
- 投稿数: 110
|
投稿日時: 2008-02-04 18:38
いつもお世話になります。
現在ASP.net(VB2005)にてWEBサイトの開発を行っています。
現在、下記のようにGridViewのヘッダに動的にボタンを追加しています。
コード: |
|
Dim button As New Button
button.Text = "変更"
button.CommandName = "BtnUpdate"
Me.GridView1.HeaderRow.Cells(0).Controls.Add(button)
|
その追加したボタンが押された際に処理を行いたいのですが、うまくいきません。
RowCommandイベントでイベントを取得しようとしたのですが、RowCommandイベントはヘッダのボタンをクリックしても実行されないようです。
コード: |
|
↓※イベントに入りません。
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If e.CommandName = "BtnUpdate" Then
End If
End Sub
|
ヘッダに作成したボタンのクリックイベントの取得方法についてどうぞご教授下さい。
|
- THREE-ONE
- 会議室デビュー日: 2006/04/06
- 投稿数: 6
|
投稿日時: 2008-02-04 20:39
ボタンに直接クリックイベント設定するんじゃダメなんですか?
|
- Access
- ぬし
- 会議室デビュー日: 2002/04/08
- 投稿数: 829
|
投稿日時: 2008-02-05 08:54
ここのサンプルを参考にしたらどうでしょうか。
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.datacontrolrowtype(VS.80).aspx
_________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
|
- RapidExpress
- 常連さん
- 会議室デビュー日: 2007/11/11
- 投稿数: 42
- お住まい・勤務地: おおさか
|
投稿日時: 2008-02-05 10:00
ボタンの追加はどのタイミングで行われているのでしょう?
もしかして、クリック後にボタンが消えていたりはしませんか?
この辺も参考になるかもしれません。
http://support.microsoft.com/kb/317515/ja
|
- カタナ
- 大ベテラン
- 会議室デビュー日: 2006/05/25
- 投稿数: 110
|
投稿日時: 2008-02-05 11:45
THREE-ONEさん、Accessさん、RapidExpressさん返信ありがとうございます。
皆様のおかげでヘッダのイベントを取得することができました。
本当のソースは長いのでテスト的に作成したソースをあげておきます。
本当にありがとうございました。
コード: |
|
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim table As DataTable = New DataTable("TestTable")
Dim column As DataColumn
column = New DataColumn()
column.DataType = System.Type.GetType("System.String")
column.ColumnName = "列1"
column.Caption = "列1"
column.ReadOnly = False
table.Columns.Add(column)
column = New DataColumn()
column.DataType = System.Type.GetType("System.String")
column.ColumnName = "列2"
column.Caption = "列2"
column.ReadOnly = False
table.Columns.Add(column)
'列を追加する
Dim row As DataRow
For i As Integer = 0 To 10
row = table.NewRow()
row("列1") = i
row("列2") = i
table.Rows.Add(row)
Next
Me.GridView1.DataSource = table
Me.GridView1.DataBind()
AddHandler GridView1.RowCommand, AddressOf CustomersGridView_RowCommand
'AddHandler GridView1.RowCreated, AddressOf CustomersGridView_RowCreated
'ヘッダにボタンを追加する
Dim addColumn As New Button
addColumn.CommandName = "Add1"
addColumn.Text = "ボタン"
Me.GridView1.HeaderRow.Cells(0).Controls.Add(addColumn)
Dim addcolumn1 As New Button
addcolumn1.CommandName = "Add2"
addcolumn1.Text = "ボタン"
Me.GridView1.HeaderRow.Cells(1).Controls.Add(addcolumn1)
End Sub
Sub CustomersGridView_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If e.CommandName = "Add1" Then
End If
If e.CommandName = "Add2" Then
End If
End Sub
|
|
- todo
- ぬし
- 会議室デビュー日: 2003/07/23
- 投稿数: 682
|
投稿日時: 2008-02-05 12:11
引用: |
|
カタナさんの書き込み (2008-02-05 11:45) より:
コード: |
|
Dim addColumn As New Button
addColumn.CommandName = "Add1"
addColumn.Text = "ボタン"
Me.GridView1.HeaderRow.Cells(0).Controls.Add(addColumn)
|
|
最初のコードと特に変わっていませんが、
何が問題だったのでしょうか?
|
- カタナ
- 大ベテラン
- 会議室デビュー日: 2006/05/25
- 投稿数: 110
|
投稿日時: 2008-02-05 13:06
todoさん返信ありがとうございます。
下記の1文を追加しました。
AddHandler GridView1.RowCommand, AddressOf CustomersGridView_RowCommand
|