2012-01-03 10 views
1

私はショッピングカートを表すリピーターを持っています。このショッピングバスケットには、「数量の更新」と「アイテムの削除」ボタンがあります。リピータのDefaultButtonには、テキストボックスとボタンがありますか?

数量を編集して入力をクリックすると、アイテムの削除ボタンを使用する場所とは異なり、数量の更新ボタンを使用する必要があります。

コードでは、DefaultButtonで「QuantityPanel」を追加してコードを修正しようとしましたが、これで問題は解決しません。

アイデア?

私のコード:テキストボックスに入力して押したときにjQueryを使用して

<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> 

答えて

4

のjQueryが使用できない場合は、あなたがどんなtexboxのデフォルトボタンを設定するように設定するための簡単なJavaScriptを使用することができます。

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ページまたは任意の簡単な "入力" テキストボックス:

<input name="TextBox1" type="text" id="TextBox1" onkeypress="return clickButton(event,'Button1')" /> 

コードbegind C#:

TextBox1.Attributes.Add("onkeypress", "return clickButton(event,'" + Button1.ClientID + "')"); 

このコードをリピータに適用すると助けが必要ですか?

+0

ありがとうございました - それは仕事をしました:-)リピータには問題ありません。ありがとう! –

1

は、コードのこの作品は、プログラム的なクリックを発行します。

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

注:私は少し遅れて、あなたがしませんでした見ました特にjqueryをリクエストしましたが、これではこのトリックを行う必要があります。

+0

jQueryはありませんが、確かに素晴らしいソリューションです。ありがとう! –

関連する問題