如何用密钥确认listview编辑?

时间:2012-06-17 04:01:07

标签: asp.net listview

我在列表视图中有以下布局:

 <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在里面更新面板。

感谢您的帮助!问候!

1 个答案:

答案 0 :(得分:0)

您在控件上设置的ID与在html中呈现的ID不同(因为ASP.NET使用父NamingContainers的id预先添加它)。

如果您使用的是ASP.NET 2010,则可以将ControlIDMode设置为Static,以确保html中的id相同。

或者,你可以查看html中的id(在浏览器中查看源代码)并更改你的JavaScript以使用它。