C# 带文本框和按钮的中继器中的DefaultButton?

C# 带文本框和按钮的中继器中的DefaultButton?,c#,javascript,asp.net,html,C#,Javascript,Asp.net,Html,我有一个中继器,它代表一个购物篮。这个购物篮有一个“更新数量”和一个“删除项目”按钮 当您编辑数量并单击“输入”时,我需要它使用“更新数量”按钮(不像现在使用“删除项目”按钮) 在代码中,我尝试通过添加带有DefaultButton的“QuantityPanel”来解决这个问题,但这并不能解决我的问题 有什么想法吗 我的代码: <asp:Repeater ID="ProductBasketRepeater" runat="server" onitemcom

我有一个中继器,它代表一个购物篮。这个购物篮有一个“更新数量”和一个“删除项目”按钮

当您编辑数量并单击“输入”时,我需要它使用“更新数量”按钮(不像现在使用“删除项目”按钮)

在代码中,我尝试通过添加带有DefaultButton的“QuantityPanel”来解决这个问题,但这并不能解决我的问题

有什么想法吗

我的代码:

<asp:Repeater ID="ProductBasketRepeater" runat="server" 
                onitemcommand="ProductBasketRepeater_ItemCommand" 
                onitemdatabound="ProductBasketRepeater_ItemDataBound1">
        <ItemTemplate>
            <tr class="BasketEntryItem">
                <td class="ImageCol">
                    <asp:Image ID="ProductImageBox" runat="server" Width="50" />
                </td>

                <td class="NameCol">
                    <asp:HyperLink ID="ProductNameHyperlink" runat="server"></asp:HyperLink>             
                </td>

                <td class="PriceCol">
                    <asp:Label ID="PriceLabel" runat="server"></asp:Label>
                </td>

                <td class="QuanCol">
                    <asp:Panel ID="QuantityPanel" runat="server" DefaultButton="UpdateQuantityBtn">
                        <asp:TextBox ID="QuantityBox" runat="server" Width="30px"></asp:TextBox>
                        <asp:LinkButton ID="UpdateQuantityBtn" runat="server" Text="Opdater" CommandName="UpdateQuantity"></asp:LinkButton>
                    </asp:Panel>
                </td>

                <td class="TotalCol">
                    <asp:Label ID="TotalPriceLabel" runat="server"></asp:Label><br />
                    <asp:Button ID="DeleteProductBtn" runat="server" Text="Slet" CommandName="Delete"  />
                </td>
            </tr>
        </ItemTemplate>

        <SeparatorTemplate>

        </SeparatorTemplate>
    </asp:Repeater>



使用jQuery,在文本框中按enter键时,此代码将发出编程单击:

$('input[id$=QuantityBox]').keypress(function(e) {
    if (e.keyCode == 13) {
        $(this).next('input[id$=UpdateQuantityBtn]').click();
    }
});

注意:我看到有点晚了,您没有特别请求jquery,但在您这样做的情况下,这应该可以解决问题。

使用jquery,在文本框中按enter键时,这段代码将发出编程单击:

$('input[id$=QuantityBox]').keypress(function(e) {
    if (e.keyCode == 13) {
        $(this).next('input[id$=UpdateQuantityBtn]').click();
    }
});

注意:我看到有点晚了,您没有特别请求jquery,但如果您这样做了,这应该可以解决问题。

如果jquery不可用,您可以使用简单的JavaScript设置任何texbox的默认按钮:

JS代码:

function clickButton(e, buttonid){
      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonid);
      if (bt){
          if (evt.keyCode == 13){
                bt.click();
                return false;
          }
      }
}
ASPX页面或任何简单的“输入”文本框:


在repeater中应用此代码需要帮助吗?

如果jQuery不可用,您可以使用简单的JavaScript设置任何texbox的默认按钮:

JS代码:

function clickButton(e, buttonid){
      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonid);
      if (bt){
          if (evt.keyCode == 13){
                bt.click();
                return false;
          }
      }
}
ASPX页面或任何简单的“输入”文本框:


您需要在中继器中应用此代码的帮助吗?

非常感谢-完成了工作:-)中继器没有问题。谢谢非常感谢-完成了任务:-)中继器没有问题。谢谢非常感谢-没有jQuery,但绝对是一个很好的解决方案。谢谢非常感谢-没有jQuery,但绝对是一个很好的解决方案。谢谢