Ich habe eine Gridview, die eine Bildschaltfläche als Aktualisierungsschaltfläche verwendet. Wenn der Benutzer eine Zeile bearbeitet, möchte ich, dass der Benutzer die Zeile aktualisieren kann, indem er die Eingabetaste drückt. Das Problem, das ich habe, ist, dass, obwohl das RowCommand Ereignis ausgelöst wird, der CommandName immer noch "Edit" statt "Update , so dass mein Update-Code nie ausgeführt wird. Was ich getan habe, ist ein paar Javascript an die Textbox in der RowDataBound Handler:Problem beim Aktualisieren der Gridview-Zeile durch Drücken der Eingabetaste
Protected Sub uxShoppingCart_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim gvr As GridViewRow = DirectCast(e.Row, GridViewRow)
If (e.Row.RowState And DataControlRowState.Edit) = DataControlRowState.Edit Then
Dim edit_Qty As TextBox = DirectCast(gvr.FindControl("edit_Qty"), TextBox)
Dim uxUpdateButton As ImageButton = DirectCast(gvr.FindControl("uxUpdateButton"), ImageButton)
uxQty.Attributes.Add("onkeypress", "return clickButton(event,'" & uxUpdateButton.ClientID & "')")
edit_Qty.Focus()
End If
End If
End Sub
die Javascript-Funktion ist wie folgt:
function clickButton(e, buttonid) {
var bt = document.getElementById(buttonid);
if (typeof bt == 'object') {
if (navigator.appName.indexOf("Netscape") > (-1)) {
if (e.keyCode == 13) {
bt.click();
return false;
}
}
if (navigator.appName.indexOf("Microsoft Internet Explorer") > (-1)) {
if (event.keyCode == 13) {
bt.click();
return false;
}
}
}
}
Und hier ist die Schaltfläche Erklärung
<EditItemTemplate>
<span style="display: inline; white-space: nowrap;">
<asp:ImageButton ID="uxUpdateButton" runat="server" CausesValidation="True" CommandName="Update" ImageUrl="~/images/icons/accept.png" AlternateText="Update" ToolTip="Update"></asp:ImageButton>
<asp:ImageButton ID="uxCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" ImageUrl="~/images/icons/cancel.png" AlternateText="Cancel" ToolTip="Cancel"></asp:ImageButton>
</span>
</EditItemTemplate>
I f Ich klicke auf den Update-Button mit der Maus, der CommandName "Update" wird wie erwartet übergeben, nur nicht, wenn ich ihn per Javascript "klicke". Jede Hilfe wäre willkommen.