ASP.NET GridView-Button-Event
Ich versuche, Auslöser ein button-Ereignis in einem gridview. Erstellt habe ich ein gridview mit dem folgenden code:
<asp:GridView id="ItemsGrid2" BorderColor="black" CellPadding="3"
BorderWidth="1" HeaderStyle-BackColor="DarkSlateGray" HeaderStyle-ForeColor="White"
AutoGenerateColumns="false" AllowSorting="true" OnSortCommand="Sort_Grid"
runat="server" align="center" Font-Name="Verdana" Font-Size="8">
<Columns>
<asp:BoundField DataField="Title" HeaderText="Title"/>
<asp:BoundField DataField="Year" HeaderText="Year" />
<asp:BoundField DataField="Score" HeaderText="Score" />
<asp:BoundField DataField="Genre" HeaderText="Genre" />
<asp:HyperLinkField HeaderText="Link" DataTextField="Link" DataNavigateUrlFields="Link"/>
<asp:TemplateField HeaderText="Seen">
<ItemTemplate>
<asp:Button runat="server" Text="Seen" OnClick="Save_Check"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Ich bind die Daten mit einem dataset, das alles Prima funktioniert.
Aber jetzt versuche ich zum auslösen der Save_Check Ereignis, das einfach aussieht:
public void Save_Check(object sender, EventArgs e)
{
string test = "test";
}
Jedoch bekomme ich immer eine Fehlermeldung: "Serverfehler in der Anwendung, falsche argument auf umbuchen". (Es ist im niederländischen also habe ich versucht ihn zu übersetzen, so klar wie möglich).
Irgendwelche Ideen? Ich bin kein Experte in asp.net. Ich normalerweise nur code in c# oder webservices, und manchmal silverlight. Aber dieses mal wollte ich es mit asp.net.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie eine OnRowCommand-Ereignis des GridView-und dann implementieren Sie einen-Ereignishandler. Auf Ihre Taste, statt der Implementierung OnClick sollten Sie sich Optional nur die Attribute CommandName und CommandArgument ich.e:
Dann in Ihre OnRowCommand event-handler können Sie Ihre code
Klicken auf den Button wird immer auslösen der OnItemCommand Ereignis, auch wenn Sie nicht geben Sie den CommandName-Attribut, aber dadurch kann man mehrere buttons auf einer Reihe, so, dass jede und jeder führt eine verschiedene Funktion.
Das CommandArgument können Sie ein argument für Ihre Funktionalität. Wenn Sie zum Beispiel wollte, übergeben Sie die ID der Person, die Sie sehen, könnte passieren CommandArgument="<%# Eval("PersonID") %>
Ich habe versucht, was u sagte. In einer sehr einfachen Weise. Ich bemerkte, dass gridview nicht die onItemCommand eventtrigger, aber ich habe gerade ein datagrid statt.
Wie dies funktioniert. Allerdings, wenn ich eine templatecolumn mit einem Knopf im inneren, es gibt den gleichen Fehler. Auch.. Wenn ich die buttontype der buttoncolumn zu "Drucktaste" es bringt wieder den gleichen Fehler. Es arbeitet mit einem linkbutton... Was ist der Unterschied? Ich würde wirklich gern haben eine Taste, cuz ein link sieht einfach hässlich 😉
Cheers