- 題名: データグリッドで「選択」ボタンをクリックしてもSelectedIndexChangedイベントが発生しない
- 日時: 2009/03/11 15:08:18
- ID: 24172
- この記事の返信元:
- (なし)
- この記事への返信:
- [24205] Re[1]: データグリッドで「選択」ボタンをクリックしてもSelectedIndexChangedイベントが発生しない2009/03/16 0:07:28
- ツリーを表示
とりあえず以下のコードで試してみてください。 take さんの環境でポストバックイベント、SelectedIndexChangedイベントは発生しますでしょうか? # VWD2008(.NET2.0)で書いたので、そのままでは動かないかもしれません。そのときは適宜修正してください。 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="DataGridSelectedIndexChangedTest.aspx.vb" Inherits="DataGridSelectedIndexChangedTest" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:DataGrid ID="DataGrid1" runat="server"> <Columns> <asp:ButtonColumn ButtonType="PushButton" CommandName="select" HeaderText="ボタン" Text="ボタン"></asp:ButtonColumn> </Columns> </asp:DataGrid> </form> </body> </html> Imports System.Data Partial Class DataGridSelectedIndexChangedTest Inherits System.Web.UI.Page Implements IPostBackEventHandler Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) If Me.IsPostBack = False Then Me.DataGrid1.DataSource = Me._createDataSource Me.DataGrid1.DataBind() End If Dim i As Integer = 0 For i = 0 To Me.DataGrid1.Items.Count - 1 Me.DataGrid1.Items(i).Cells(0).Attributes.Add("onclick", _ Me.Page.GetPostBackEventReference(Me, i.ToString)) Next MyBase.OnLoad(e) End Sub Private Function _createDataSource() As DataTable Dim dt As New DataTable dt.Columns.Add("列1", GetType(String)) dt.Columns.Add("列2", GetType(String)) Dim i As Integer = 0 For i = 0 To 10 dt.Rows.Add("データ−" + i.ToString, "メモ−" + i.ToString) Next Return dt End Function Protected Sub DataGrid1_SelectedIndexChanged(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles DataGrid1.SelectedIndexChanged MsgBox("SelectedIndexChanged", MsgBoxStyle.OkOnly, "サーバーサイド") End Sub Public Sub RaisePostBackEvent1(ByVal eventArgument As String) _ Implements System.Web.UI.IPostBackEventHandler.RaisePostBackEvent MsgBox("RaisePostBackEvent−" + eventArgument, MsgBoxStyle.OkOnly, "サーバーサイド") End Sub End Class
分類:[ASP.NET]
ASP.NETの初心者です。
DataGrid1をWebForm1に配置し、プロパティビルダによって選択ボタンを
追加しました。
テキスト:選択
コマンド名:Select
ボタンの種類:PushButton
そして、Page_LoadイベントでデータグリッドをDataBindし、DataGrid1の
SelectedIndexChangedイベントを記述しました。
この状態で実行してみると、DataGrid1には、「選択」ボタンが表示され
データも表示されます。
しかし、「選択」ボタンをクリックしても、SelectedIndexChangedイベントが
発生しません。
SelectedIndexChangedイベントにブレイクポイントを設定してもSelectedIndexChangedイベントが発生している気配がありません。
何が問題なのか、さっぱり分かりません。
何か必要な処理があるのでしょうか?
もし、何か必要な処理、あるいは確認しなければいけないことが
ありましたら教えてください。
よろしくお願い致します。