2012-06-17 40 views
0

我有一个列表视图布局如下:我怎样才能确认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> 

我要的是通过敲击回车键(前奏,进入,CHR(13),无论你的名字),以确认编辑和当焦点位于txtZonaNombre文本框上时,通过按esc键取消编辑。

我已经试过涂模拟“点击”使用jQuery,使用此代码:

$("#txtZonaNombre").keypress(function (e) { 
    if (e.which === 13) { 
     $("#btnConfirmar").trigger('click'); 
     return false; 
    } 
}); 

但这些代码不会甚至被解雇(我已经报警电话检查它)。

整个列表视图是用户控件(它在一个ascx文件上)的一部分,并且该控件位于母版页布局内(我指的是母版页中的jquery库),并且列表视图是在一个updatepanel里面。

我感谢您的帮助!问候!

回答

0

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

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

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

+0

谢谢!知道控制名称不是我设置的那个,我做了一个解决方法。问候! – Leo