У меня есть сетка, которая использует кнопку изображения в качестве кнопки обновления. Когда пользователь редактирует строку, я бы хотел, чтобы пользователь мог обновить строку, нажав Enter. У меня проблема в том, что, хотя событие RowCommand запущено, CommandName по-прежнему «Изменить» вместо «Обновить»
поэтому мой код обновления никогда не выполняется. Я подключил JavaScript к текстовому полю в обработчике RowDataBound:
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
Функция javascript выглядит следующим образом:
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;
}
}
}
}
А вот и кнопка объявления
<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>
Если я нажимаю кнопку обновления с помощью мыши, CommandName «Обновление» передается, как и ожидалось, только не тогда, когда я «щелкаю» его через JavaScript Любая помощь будет оценена.