2016-08-16 1 views
0

Ich habe eine Gridview, die eine Schaltfläche in jeder Zeile enthält, die ich eine Veranstaltung auslösen möchte. Wenn Sie auf die Schaltfläche klicken, wird das Ereignis nicht ausgelöst und es passiert nur, dass das Ereignis onLoad ausgelöst wird und die Seite neu geladen wird, ohne dass die Gridview ausgefüllt wird.OnRowCommand nicht auf GridView feuern

Die ASPX-Code ist wie folgt:

<asp:GridView id="gvUsers" 
     OnRowCommand="gvUsers_RowCommand" 
     AutoGenerateColumns="False" 
     runat="server"> 
    <Columns> 
     <asp:BoundField DataField="UserID" HeaderText="UserID" /> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <%# Eval("FirstName")%> <%# Eval("LastName")%> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField> 
      <ItemTemplate> 
      <asp:Button ID="lnkSubmit" runat="server" CommandName="Submit" Text="Action" CommandArgument='<%# CType(Container,GridViewRow).RowIndex %>' ></asp:Button> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

Mein aspx.cs ist wie folgt:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     Dim dr As SqlDataReader = db.GetUsers("[email protected]") 
     Dim users As New List(Of FLLib.FixturesLive.Core.User) 
     While dr.Read 
      Dim u As New FLLib.FixturesLive.Core.User 
      u.UserID = dr("UserID") 
      u.FirstName = dr("FirstName") 
      u.LastName = dr("LastNAme") 
      u.Sex = dr("Sex") 
      u.EmailAddress = dr("Email") 
      users.Add(u) 
     End While 

     gvUsers.DataSource = users.ToArray 
     gvUsers.DataBind() 
    End If 
End Sub 


Sub gvUsers_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) 

    If e.CommandName.Equals("Submit") Then 
     Dim oItem As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow) 
     Dim RowIndex As Integer = oItem.RowIndex 
    End If 
End Sub 

Jede Hilfe würde geschätzt.

Dank Andy

Antwort

0

Sie haben den Handles gvUsers.RowCommand Teil weggelassen. Ändern Sie Ihre Ereignissignatur wie folgt

Sub gvUsers_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles gvUsers.RowCommand