グリッドビューに2つのテンプレート列があり、それぞれに異なるコードを実行したいと思います。クリックされたテンプレート列を特定するにはどうすればよいですか?私が使用している以下のコードは、1つのテンプレート列で機能しますが、別のテンプレート列がある場合は、このコードを起動したくないので、別のコードを実行したいと思います。ありがとう
Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
Dim row As GridViewRow = DirectCast(DirectCast(sender, ImageButton).NamingContainer, GridViewRow)
DirectCast(row.NamingContainer, GridView).SelectedIndex = row.RowIndex
Session("ReferenceNumber") = GridView1.SelectedRow.Cells(3).Text
Session("ID") = GridView1.SelectedRow.Cells(1).Text
Response.Redirect("~/frmEditRecord.aspx")
End Sub
選択したインデックス変更イベントで区別するすべてのテンプレートフィールド列にImageButton
、CommandName
プロパティとともにコントロールを持たせる場合は、イベントハンドラーでこれを行うことができます。
Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
Dim buttonClicked As ImageButton = TryCast(sender, ImageButton)
If buttonClicked Is Not Nothing Then
Dim commandName As String = buttonClicked.CommandName
If commandName = "Delete" Then
' Do something with delete button here
ElseIf commandName = "Edit" Then
' Do something with edit button here
ElseIf commandName = "Pdf" Then
' Do something with PDF button here
End If
End If
Dim row As GridViewRow = DirectCast(DirectCast(sender, ImageButton).NamingContainer, GridViewRow)
DirectCast(row.NamingContainer, GridView).SelectedIndex = row.RowIndex
Session("ReferenceNumber") = GridView1.SelectedRow.Cells(3).Text
Session("ID") = GridView1.SelectedRow.Cells(1).Text
Response.Redirect("~/frmEditRecord.aspx")
End Sub
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加