GridView OnSelectedIndexChanged-Ereignis wird nicht ausgelöst

GridView OnSelectedIndexChanged-Ereignis wird nicht ausgelöst

Wenn Sie nur auf die Zeile im GridView klicken , das das Ereignis nicht auslöst. Sie müssen eine Art Schaltfläche in der Zeile haben, auf die Sie klicken können, die RowCommand auslöst Ereignis sowie die SelectedIndexChanged Ereignis (wenn die Zeile, auf die Sie klicken, natürlich nicht bereits ausgewählt ist). Es ist nicht genau wie das Windows Forms DataGridView =)

Der einfachste Weg, das Ereignis zum Auslösen zu bringen, besteht darin, dieses Attribut zu Ihrem GridView hinzuzufügen Auszeichnung:

AutoGenerateSelectButton="True"

Dadurch wird ein "Select" LinkButton erstellt , wodurch Gridview1_SelectedIndexChanged2 ausgelöst wird Ereignis in Ihrem Code-Behind, wenn Sie darauf klicken.

BEARBEITEN: Nur zur Verdeutlichung, hier müssen Sie dieses Attribut hinzufügen:

<asp:GridView ID="GridView1" runat="server" GridLines="None" 
  Width="930px" CellPadding="4" ForeColor="#333333"  
  onselectedindexchanged="GridView1_SelectedIndexChanged2"
  AutoGenerateSelectButton="True" >

Es ist NICHT wahr, dass Sie nicht auf eine Zeile klicken und sie den SelectedIndexChanged behandeln lassen können Veranstaltung. Sie müssen nur einen kleinen Code zu RowCreated hinzufügen Veranstaltung.

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

Es ist ein paar Jahre her, seit diese Frage gestellt wurde, und ich hoffe sehr, dass die Person mit dem Problem es herausgefunden hat, aber ich hatte das gleiche Problem und dank eines der Antwortenden habe ich herausgefunden, was das Problem war.

Überprüfen Sie die aktuelle Schaltflächenzeile in der Gridansicht und vergewissern Sie sich, dass Sie den CommandName="Select" haben im ButtonField. Aus irgendeinem Grund das Code, der normalerweise automatisch eingetragen wird, wurde nicht hinzugefügt.