我在列表视图中有以下布局:
<EditItemTemplate>
<tr class="<%# If(Container.DisplayIndex Mod 2 = 0, "", "a") %>">
<td style="text-align: center;width:50px;">
<asp:ImageButton ID="btnConfirmar" runat="server" CommandName="Update" ImageUrl="../images/Aceptar.ico">
</asp:ImageButton>
</td>
<td style="text-align: center;width:50px;">
<asp:ImageButton ID="btnCancelar" runat="server" CommandName="Cancel" ImageUrl="../images/Cancelar.ico">
</asp:ImageButton>
</td>
<td style="text-align: left;">
<asp:TextBox ID="txtZonaNombre" Text='<%#Convert.ToString(CType(Container.DataItem, KeyValuePair(Of Long, Mercurio.clsZonas)).Value.ZonaNombre)%>'
runat="server" Width="100%" />
<asp:RequiredFieldValidator ID="ZonaNombreValidador" ControlToValidate="txtZonaNombre"
Display="Dynamic" Text="La zona debe tener nombre" runat="server" />
</td>
</tr>
</EditItemTemplate>
我想要的是通过点击返回键(intro,enter,chr(13),无论你怎么命名)确认编辑,并在焦点位于txtZonaNombre文本框时按esc键取消编辑
我尝试使用jquery模拟“点击”,使用以下代码:
$("#txtZonaNombre").keypress(function (e) {
if (e.which === 13) {
$("#btnConfirmar").trigger('click');
return false;
}
});
但代码甚至没有被解雇(我已经通过警报调用检查了它)。
整个listview是用户控件的一部分(它位于ascx文件中),控件位于主页面布局中(我指的是主页面中的jquery库),listview在里面更新面板。
感谢您的帮助!问候!
答案 0 :(得分:0)
您在控件上设置的ID与在html中呈现的ID不同(因为ASP.NET使用父NamingContainers的id预先添加它)。
如果您使用的是ASP.NET 2010,则可以将ControlIDMode设置为Static,以确保html中的id相同。
或者,你可以查看html中的id(在浏览器中查看源代码)并更改你的JavaScript以使用它。