J'ai une vue en grille qui utilise un bouton image comme bouton de mise à jour. Lorsque l'utilisateur modifie une ligne, j'aimerais que l'utilisateur puisse mettre à jour la ligne en appuyant sur Entrée. Le problème que je rencontre est que même si l'événement RowCommand est déclenché, le CommandName est toujours "Edit" au lieu de "Update " pour que mon code de mise à jour ne soit jamais exécuté, ce que j'ai fait est de javascript dans la zone de texte gestionnaire RowDataBound:Problème de mise à jour de la ligne Gridview en appuyant sur Entrée
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
la fonction javascript est la suivante:
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;
}
}
}
}
Et voici la déclaration de bouton
<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 Je clique sur le bouton de mise à jour en utilisant la souris, le nom de commande "Update" est passé comme prévu, mais pas quand je le "clique" via javascript. Toute aide serait appréciée.