GridView
の行をクリックするだけの場合 、それはイベントを発生させません。クリックする行にある種のボタンが必要です。これにより、 RowCommand
が起動されます イベント、および SelectedIndexChanged
イベント (もちろん、クリックした行がまだ選択されていない場合)。 Windows フォームの DataGridView とまったく同じではありません =)
イベントを発生させる最も簡単な方法は、この属性を GridView
に追加することです マークアップ:
AutoGenerateSelectButton="True"
これにより、「選択」 LinkButton
が作成されます Gridview1_SelectedIndexChanged2
を起動します クリックすると、コード ビハインドでイベントが発生します。
編集: 明確にするために、ここにその属性を追加する必要があります:
<asp:GridView ID="GridView1" runat="server" GridLines="None"
Width="930px" CellPadding="4" ForeColor="#333333"
onselectedindexchanged="GridView1_SelectedIndexChanged2"
AutoGenerateSelectButton="True" >
行をクリックして SelectedIndexChanged
を処理できないというのは正しくありません イベント。 RowCreated
に少しコードを追加するだけです。 イベント。
Protected Sub yourDataGrid_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles yourDataGrid.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes("onclick") = Me.Page.ClientScript.GetPostBackEventReference(Me.yourDataGrid, "Select$" & e.Row.RowIndex)
End If
End Sub
この質問が出されてから数年が経ちました。問題を抱えている人がそれを理解してくれることを願っていますが、私も同じ問題を抱えていて、レスポンダーの 1 人のおかげで問題が何であるかを突き止めました.
Gridview で実際のボタン行を確認し、 CommandName="Select"
があることを確認してください ボタンフィールドで。何らかの理由で それ 通常は自動的に入力されるコードが追加されませんでした。