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